changeset 162:e8ad3e5e4893

Making testing process automatic
author Zdenek Zambersky <zzambers@redhat.com>
date Wed, 22 Oct 2014 16:42:56 +0200
parents 308d55883a24
children 18d8671d9c96
files Makefile README.md outputtexts/1.1.0/thermostat.txt outputtexts/1.1.0/thermostat_help.txt outputtexts/1.1.0/thermostat_help_storage.txt outputtexts/head/thermostat.txt outputtexts/head/thermostat_help.txt outputtexts/head/thermostat_help_storage.txt src/org/thermostat/qa/common/Configuration.java src/org/thermostat/qa/framework/ThermostatUtilities.java src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java src/org/thermostat/qa/testsuites/OutputMessagesTest.java storageconfig/1.1.0/db-mongodb/agent.auth storageconfig/1.1.0/db-mongodb/client.properties storageconfig/1.1.0/web-tomcat/client.properties storageconfig/head/db-mongodb/agent.auth storageconfig/head/db-mongodb/client.properties storageconfig/head/web-tomcat/client.properties storageconfig/keyrings/Default.keyring storageconfig/keyrings/default
diffstat 21 files changed, 445 insertions(+), 218 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Wed Oct 22 16:41:20 2014 +0200
+++ b/Makefile	Wed Oct 22 16:42:56 2014 +0200
@@ -5,9 +5,12 @@
 
 SOURCE_DIR=src
 BUILD_DIR=bin
+CLASSES_DIR=$(BUILD_DIR)/classes
+CLASSES_TEMP_DIR=$(BUILD_DIR)/.classes
 REPORT_DIR=reports
 LOGS_DIR=logs
 TEMPLATE_DIR=templates
+SCREENSHOTS_DIR=screenshots
 
 JAVAC=javac
 JAVA=java
@@ -23,100 +26,47 @@
 REPORTER_PACKAGE=$(ROOT_PACKAGE)/reporter
 TEST_PACKAGE=$(ROOT_PACKAGE)/testsuites
 
-FLOTR_ADDRESS=http://flotr.googlecode.com/files/prototype.flotr-0.2.0-alpha.zip
-FLOTR_DIR=$(TEMPLATE_DIR)/flotr
+FLOTR_NAME=prototype.flotr-0.2.0-alpha
+FLOTR_ARCHIVE=$(FLOTR_NAME).zip
+FLOTR_ADDRESS=http://flotr.googlecode.com/files/$(FLOTR_ARCHIVE)
+FLOTR_DIR=$(BUILD_DIR)/flotr
 FLOTR_LIB_DIR=$(FLOTR_DIR)/lib
-FLOTR_ARCHIVE=prototype.flotr-0.2.0-alpha.zip
+
+TOMCAT_VERSION=7.0.56
+TOMCAT_NAME=apache-tomcat-$(TOMCAT_VERSION)
+TOMCAT_ARCHIVE=$(TOMCAT_NAME).tar.gz
+TOMCAT_URL=http://apache.mirror.rafal.ca/tomcat/tomcat-$(shell echo "$(TOMCAT_VERSION)" | sed 's/\..*//g' )/v$(TOMCAT_VERSION)/bin/$(TOMCAT_ARCHIVE)
+TOMCAT_DIR=$(BUILD_DIR)/$(TOMCAT_NAME)
+
+THERMOSTAT_VERSION=1.1.0
+THERMOSTAT_REPO_URL=http://icedtea.classpath.org/hg/thermostat/
+THERMOSTAT_USER_DIR=$(BUILD_DIR)/.thermostat
+THERMOSTAT_DIR=$(BUILD_DIR)/thermostat
+THERMOSTAT_WEB_DEPLOY_DIR=$(TOMCAT_DIR)/webapps/thermostat
+
+GNOME_KEYRING_USER_DATA_DIR=$(shell realpath -m "$(BUILD_DIR)/.gnome-keyring" )
 
 JAVADOC_DIR=$(REPORT_DIR)/javadoc
 
-DATE=`date +%Y-%0m-%0d`
+KILL_DAEMONS=0
 
-TESTS = \
-	SmokeTests \
-	AgentTest \
-	StorageSmokeTest \
-	OutputMessagesTest \
-	ServiceSmokeTests \
-	GuiClientSmokeTest \
-	CliClientSmokeTest \
-	GuiClientDBModificationsSmokeTest \
-	CliClientDBModificationsSmokeTest \
-	AgentWebStorageTest \
-	GuiClientWebStorageTest \
-	CliClientDBModifWebStorageTest \
-	GuiClientDBModifWebStorageTest \
-	GuiHostViewSmokeTest \
-	CommandChannelSmokeTest \
-	CommandChannelWebStorageTest \
-	DBSchemeSmokeTest \
-	DBGuiHeapDumpTest \
-	DBCommandsHeapDumpTest
-
-# targets for all test suites
-TESTSUITES = $(shell ls -1 $(SOURCE_DIR)/$(TEST_PACKAGE) | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p')	
+DATE=`date +%Y-%0m-%0d`
+	
+# all *.java files in src directory
+ALL_SOURCES = $(shell find src -name *.java | tr '\n' ' ')
 
-ALL_CLASSES = \
-	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/TestTypes.class \
-	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/TestType.class \
-	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/StorageTypes.class \
-	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/StorageType.class \
-	$(BUILD_DIR)/$(COMMON_PACKAGE)/Configuration.class \
-	$(BUILD_DIR)/$(COMMON_PACKAGE)/ScreenshotSourceType.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestResult.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/StringUtils.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/FileUtils.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestStatus.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestType.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/CommandLineParameters.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/CommonGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/GraphPagesGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/HistoryPagesGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/IndexPageGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/JavadocGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/LogPagesGenerator.class \
-	$(BUILD_DIR)/$(REPORTER_PACKAGE)/Reporter.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/Assert.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/TestResult.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/TestStatus.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatGuiTest.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatTest.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ImageProcessing.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatUtilities.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatOutputTextsGenerator.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/GuiRobot.class \
-	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/Patterns.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/AgentTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/OutputMessagesTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/PackageInstallationTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/ServiceSmokeTests.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/SmokeTests.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/StorageSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientDBModificationsSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientDBModificationsSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/AgentWebStorageTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientWebStorageTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/VersionAnnotationsSelfTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientDBModifWebStorageTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientDBModifWebStorageTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiHostViewSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/CommandChannelSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/CommandChannelWebStorageTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/DBSchemeSmokeTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/DBGuiHeapDumpTest.class \
-	$(BUILD_DIR)/$(TEST_PACKAGE)/DBCommandsHeapDumpTest.class
+# all testsuites ( in $(SOURCE_DIR)/$(TEST_PACKAGE) package )
+TESTS = $(shell ls -1 $(SOURCE_DIR)/$(TEST_PACKAGE) | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p')
 
-all:	build runtests
+
+.PHONY: all
+all: build runtests
 
 #### clean ####
 
 clean:
-	rm -rf $(BUILD_DIR)/org
-	rm -rf $(TEMPLATE_DIR)/flotr
 	rm -rf $(JAVADOC_DIR)
-	rmdir $(BUILD_DIR)
+	rm -rf $(BUILD_DIR)
 
 cleanlogs: clean_logs
 
@@ -125,56 +75,106 @@
 
 clean_all_logs:
 	rm -rf $(LOGS_DIR)
+	
+clean_all:
+	rm -rf $(JAVADOC_DIR)
+	rm -rf $(BUILD_DIR)
+	rm -rf $(SCREENSHOTS_DIR)
+	rm -rf $(LOGS_DIR)
 
 #### build ####
 
-build:	builddir $(ALL_CLASSES)
-
-builddir:
-	mkdir -p ${BUILD_DIR}
+.PHONY: build
+build: $(CLASSES_DIR)
 	
-$(BUILD_DIR)/$(ROOT_PACKAGE)/%.class:	$(SOURCE_DIR)/$(ROOT_PACKAGE)/%.java
-	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<
+$(BUILD_DIR):
+	mkdir -p $(BUILD_DIR)
 
-$(BUILD_DIR)/$(COMMON_PACKAGE)/%.class:	$(SOURCE_DIR)/$(COMMON_PACKAGE)/%.java
-	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<
-
-$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/%.class:	$(SOURCE_DIR)/$(FRAMEWORK_PACKAGE)/%.java
-	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<
-
-$(BUILD_DIR)/$(REPORTER_PACKAGE)/%.class:	$(SOURCE_DIR)/$(REPORTER_PACKAGE)/%.java
-	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<
-
-$(BUILD_DIR)/$(TEST_PACKAGE)/%.class:	$(SOURCE_DIR)/$(TEST_PACKAGE)/%.java
-	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<
+$(CLASSES_DIR): | ${BUILD_DIR}
+	rm -rf $(CLASSES_TEMP_DIR)
+	mkdir -p $(CLASSES_TEMP_DIR)
+	$(JAVAC) -d $(CLASSES_TEMP_DIR) -sourcepath $(SOURCE_DIR)/ $(ALL_SOURCES)
+	mkdir -p $(shell dirname $(CLASSES_DIR) )
+	mv -T $(CLASSES_TEMP_DIR) $(CLASSES_DIR)
 
 #### test ####
 
-runtests:	$(ALL_CLASSES)
-	mkdir -p screenshots
+.PHONY: runtests
+runtests:	$(TESTS)
+
+$(TESTS): build tomcat thermostat testwarning | $(GNOME_KEYRING_USER_DATA_DIR)
+	mkdir -p $(SCREENSHOTS_DIR)
 	mkdir -p $(LOGS_DIR)
 	mkdir -p $(LOGS_DIR)/$(DATE)
-	for tst in $(TESTS); do \
-	$(JAVA) -cp $(BUILD_DIR) org.thermostat.qa.testsuites.$$tst 2>&1 | tee $(LOGS_DIR)/$(DATE)/$$tst.log ; \
-	done
+	# stop mongo database if running
+	killall mongod || true
+	# (re)start gnome-keyring-daemon with custom configuration
+	killall gnome-keyring-daemon || true
+	export XDG_DATA_HOME="$(GNOME_KEYRING_USER_DATA_DIR)" ;	\
+	gnome-keyring-daemon --start --components=secrets
+	# start test with overwriten USER_THERMOSTAT_HOME and required parameters
+	USER_THERMOSTAT_HOME=$(THERMOSTAT_USER_DIR) \
+	$(JAVA) -cp $(CLASSES_DIR) \
+	-Dtomcat.home=$(TOMCAT_DIR) \
+	-Dthermostat.home=$(THERMOSTAT_DIR)/distribution/target/image \
+	-Dthermostat.user.home=$(THERMOSTAT_USER_DIR) \
+	-Dthermostat.executable.name=thermostat \
+	-Dthermostat.executable.path=$(THERMOSTAT_DIR)/distribution/target/image/bin \
+	-Dthermostat.version=$(THERMOSTAT_VERSION) \
+	-Dscreenshot.source=normal \
+	-Dclean.after.gui.test=true \
+	$(TEST_PACKAGE).$@ 2>&1 | tee $(LOGS_DIR)/$(DATE)/$@.log
+	# stop gnome-keyring-daemon with custom config after test
+	killall gnome-keyring-daemon; 
+	
 
-$(TESTSUITES):	$(BUILD_DIR)
-	mkdir -p $(LOGS_DIR)
-	mkdir -p $(LOGS_DIR)/$(DATE)
-	$(JAVA) -cp $(BUILD_DIR) $(TEST_PACKAGE).$@ 2>&1 | tee $(LOGS_DIR)/$(DATE)/$@.log
+.PHONY: testwarning
+testwarning:
+	@# if KILL_DAEMONS != 1 and mongo or gnome keyring is running
+	@# warn user that they need to be killed
+	@ps aux | grep -v "grep" | grep -q "mongod" ; \
+	mongo=$$? ; \
+	ps aux | grep -v "grep" | grep -q "gnome-keyring-daemon" ; \
+	gnomekeyring=$$? ; \
+	if [ $(KILL_DAEMONS) -eq 0 ] && [ $$mongo -eq 0 -o $$gnomekeyring -eq 0 ] ; then \
+		echo "--------------------------------------------------------------------" ; \
+		echo "This test suite runs mongo database and gnome-keyring daemons with" ; \
+		echo "custom configuration, so it will kill any running instance of these" ; \
+		echo "daemons before start of testing." ; \
+		echo ; \
+		while true; do \
+			echo "Do you want to continue? (yes/no)" ; \
+			read answer ; \
+			case "$${answer}" in \
+				yes) \
+					break \
+				;; \
+				no) \
+					echo "Canelling ..." ; \
+					exit 1 \
+				;; \
+				*) \
+					echo "unrecognized answer: $${answer}" ; \
+					echo ; \
+				;; \
+			esac \
+		done \
+	fi ; \
+	true
 
+.PHONY: listtests
 listtests:
 	for tst in $(TESTS); do \
 	echo $$tst ; \
 	done
 
 #### reports & javadoc ####
-
+	
 report:	$(ALL_CLASSES) flotr javadoc
 	mkdir -p $(REPORT_DIR)
 	cp -u $(TEMPLATE_DIR)/style.css $(REPORT_DIR)/style.css
-	cp -r $(TEMPLATE_DIR)/flotr $(REPORT_DIR)
-	$(JAVA) -cp $(BUILD_DIR) org.thermostat.qa.reporter.Reporter -template-dir=$(TEMPLATE_DIR) -log-dir=$(LOGS_DIR) -report-dir=$(REPORT_DIR) -date=$(DATE) -tests="$(TESTS)"
+	cp -r $(FLOTR_DIR) $(REPORT_DIR)
+	$(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.reporter.Reporter -template-dir=$(TEMPLATE_DIR) -log-dir=$(LOGS_DIR) -report-dir=$(REPORT_DIR) -date=$(DATE) -tests="$(TESTS)"
 	sed -i 's/ignored/not applicable/g' $(REPORT_DIR)/log_$(DATE).html 
 	sed -i 's/IGNORED/NOT APPLICABLE/g' $(REPORT_DIR)/log_$(DATE).html 
 	links -dump $(REPORT_DIR)/index.html 2>/dev/null > $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
@@ -190,7 +190,7 @@
 	links -dump $(REPORT_DIR)/hist_10.html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
 	w3m   -dump $(REPORT_DIR)/hist_10.html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
 	lynx  -dump $(REPORT_DIR)/hist_10.html -force_html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
-
+	
 javadoc:
 	mkdir -p $(JAVADOC_DIR)
 	javadoc -d $(JAVADOC_DIR) -classpath src org.thermostat.qa.testsuites
@@ -198,13 +198,6 @@
 	cp -r scripts $(JAVADOC_DIR)/org/thermostat/qa/testsuites/
 
 #### other ####
-	
-#webstoragetests:
-#	cp 
-#	cp 	
-#	make runtests
-#	cp
-#	cp
 
 #create a directory outputtexts/versionN for the current version
 #of the output_texts (can be found in the test.properties)
@@ -212,38 +205,106 @@
 generatetexts:	$(ALL_CLASSES)
 	mkdir -p outputtexts
 	mkdir -p outputtexts/`cat test.properties | grep thermostat_version | sed -e 's/^.*=//g;s/$$//g'`
-	java -cp $(BUILD_DIR) org.thermostat.qa.framework.ThermostatOutputTextsGenerator
+	$(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.framework.ThermostatOutputTextsGenerator
 
 #make icons in given dir smaller / remove unnecessary pixels
 cuticons:  $(ALL_CLASSES)
-	java -cp $(BUILD_DIR) org.thermostat.qa.framework.IconCut
+	$(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.framework.IconCut
 
 #generate pattern defs on std output
 patternsdef:  $(ALL_CLASSES)
-	java -cp $(BUILD_DIR) org.thermostat.qa.framework.PatternDefinitionsGenerator
+	$(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.framework.PatternDefinitionsGenerator
 
 
 #### OTHER SOFTWARE ####	
 	
 #### FLOTR ####
 	
+.PHONY: flotr
 flotr:	$(FLOTR_DIR)/flotr-0.2.0-alpha.js $(FLOTR_LIB_DIR)/canvas2image.js $(FLOTR_LIB_DIR)/canvastext.js $(FLOTR_LIB_DIR)/prototype-1.6.0.2.js
 
-$(FLOTR_DIR)/flotr-0.2.0-alpha.js: $(FLOTR_ARCHIVE)
+$(FLOTR_DIR)/flotr-0.2.0-alpha.js: $(BUILD_DIR)/$(FLOTR_ARCHIVE)
 	mkdir -p $(FLOTR_DIR)
 	unzip -j -o $? flotr-0.2.0-alpha/flotr/flotr-0.2.0-alpha.js -d $(FLOTR_DIR)
 
-$(FLOTR_LIB_DIR)/canvas2image.js: $(FLOTR_ARCHIVE)
+$(FLOTR_LIB_DIR)/canvas2image.js: $(BUILD_DIR)/$(FLOTR_ARCHIVE)
 	mkdir -p $(FLOTR_LIB_DIR)
 	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/canvas2image.js -d $(FLOTR_LIB_DIR)
 
-$(FLOTR_LIB_DIR)/canvastext.js: $(FLOTR_ARCHIVE)
+$(FLOTR_LIB_DIR)/canvastext.js: $(BUILD_DIR)/$(FLOTR_ARCHIVE)
 	mkdir -p $(FLOTR_LIB_DIR)
 	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/canvastext.js -d $(FLOTR_LIB_DIR)
 
-$(FLOTR_LIB_DIR)/prototype-1.6.0.2.js: $(FLOTR_ARCHIVE)
+$(FLOTR_LIB_DIR)/prototype-1.6.0.2.js: $(BUILD_DIR)/$(FLOTR_ARCHIVE)
 	mkdir -p $(FLOTR_LIB_DIR)
 	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/prototype-1.6.0.2.js -d $(FLOTR_LIB_DIR)
 
-prototype.flotr-0.2.0-alpha.zip:
-	wget $(FLOTR_ADDRESS)
+$(BUILD_DIR)/$(FLOTR_ARCHIVE):
+	wget -P $(BUILD_DIR) $(FLOTR_ADDRESS)
+
+#### TOMCAT ####
+
+.PHONY: tomcat
+tomcat: | $(TOMCAT_DIR)
+
+$(TOMCAT_DIR): | $(BUILD_DIR)
+	wget -P $(BUILD_DIR) $(TOMCAT_URL)
+	tar xf $(BUILD_DIR)/$(TOMCAT_ARCHIVE) -C $(BUILD_DIR)
+	if [ "$(BUILD_DIR)/$(TOMCAT_NAME)" != "$(TOMCAT_DIR)" ] ; then \
+		mkdir -p "$(TOMCAT_DIR)" ; \
+		mv -T "$(BUILD_DIR)/$(TOMCAT_NAME)" "$(TOMCAT_DIR)" ; \
+	fi
+
+#### THERMOSTAT ####
+	
+.PHONY: thermostat
+thermostat: thermostat-build thermostat-setup
+
+
+.PHONY: thermostat-setup
+thermostat-setup: $(THERMOSTAT_WEB_DEPLOY_DIR) | $(THERMOSTAT_USER_DIR)/data/setup-complete.stamp
+
+$(THERMOSTAT_USER_DIR)/data/setup-complete.stamp: | $(THERMOSTAT_USER_DIR) $(THERMOSTAT_DIR)/distribution/target/image
+	# init storage and add agent-tester and client-tester users in custom user dir 	
+	killall mongod || true
+	export USER_THERMOSTAT_HOME=$(THERMOSTAT_USER_DIR) &&\
+	if [ -f "$(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat-devsetup" ] ; then \
+		$(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat-devsetup; \
+	fi &&\
+	$(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat storage --start &&\
+	echo -e \
+		"use thermostat\n\
+		db.auth(\"mongodevuser\", \"mongodevpassword\")\n\
+		db.addUser(\"agent-tester\",\"heslo1\")\n\
+		db.addUser(\"client-tester\",\"heslo2\")\n\
+		exit\n" \
+	| mongo 127.0.0.1:27518; \
+	$(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat storage --stop
+
+$(THERMOSTAT_USER_DIR): | $(THERMOSTAT_DIR)
+	mkdir -p $(THERMOSTAT_USER_DIR)
+	
+$(THERMOSTAT_WEB_DEPLOY_DIR): tomcat thermostat-build
+	rm -rf $(THERMOSTAT_WEB_DEPLOY_DIR)
+	mkdir -p $(THERMOSTAT_WEB_DEPLOY_DIR)
+	cp	$(THERMOSTAT_DIR)/web/war/target/*.war $(THERMOSTAT_WEB_DEPLOY_DIR)
+
+.PHONY: thermostat-build
+thermostat-build: | $(THERMOSTAT_DIR)/distribution/target/image	
+	
+$(THERMOSTAT_DIR)/distribution/target/image: | $(THERMOSTAT_DIR)/pom.xml
+	cd $(THERMOSTAT_DIR) &&\
+	mvn -Dmaven.test.skip=true clean install
+	
+$(THERMOSTAT_DIR)/pom.xml: | $(THERMOSTAT_DIR)
+	hg clone $(THERMOSTAT_REPO_URL) $(THERMOSTAT_DIR)
+
+$(THERMOSTAT_DIR): | ${BUILD_DIR}
+	mkdir -p $(THERMOSTAT_DIR)
+	
+#### GNOME KEYRING ####
+
+$(GNOME_KEYRING_USER_DATA_DIR):
+	# create custom config directory for gnome-keyring and copy data there
+	mkdir -p $(GNOME_KEYRING_USER_DATA_DIR)
+	cp -r storageconfig/keyrings $(GNOME_KEYRING_USER_DATA_DIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Wed Oct 22 16:42:56 2014 +0200
@@ -0,0 +1,128 @@
+ThermostatQA
+============
+
+This project contains QA tests for Thermostat. Thermostat itself
+contains a set of unit and integration tests, but this tries to be
+much more comprehensive.
+
+Requirements
+-----------
+
+gnome-keyring
+mongodb
+lynx
+
+Running
+-------
+
+Build and run using:
+
+    $ make
+
+This will download any necessary tools and then set up everything and run the
+entire test suite. Since the test exercises the GUI, it might be a good idea to
+run it in a seprate VNC session.
+
+Directory Structure
+-------------------
+
+- `bin/` compiled classes
+- `logs/`  logs from tests
+- `reports/` reports from tests
+- `screenshots/` screenshots from tests
+- `scripts/` scripts for running the tsts
+
+Important makefile targets
+--------------------------
+
+all         builds project an runs tests
+
+build       builds all classes
+
+runtests    executes all test (automaticaly builds project and download
+            necessary software if needed)
+
+listtests   lists all available tests
+
+<testName>  runs single test of that name
+
+report      generates report from tests (runtests is needed to be executed before)
+
+javadoc     generages javadoc
+
+
+thermostat  clones, builds and sets-up thermostat (if necessary)
+
+tomcat      downloads and unpacks apache-tomcat (if necessary)
+
+
+
+Important makefile variables
+----------------------------
+
+BUILD_DIR           : directory genrated by build phase used to store compiled 
+                      classes and also downloaded files/software
+                      and custom configuration directories used for testing
+                      (default: bin)
+
+CLASSES_DIR         : directory where generated classes are stored
+                      (default: <BUILD_DIR>/classes)
+
+THERMOSTAT_REPO_URL : repository used to clone Thermostat for testing
+                      (default: http://icedtea.classpath.org/hg/thermostat/ )
+
+THERMOSTAT_VERSION  : version for which ThermostatQA is configured
+                      (default: 1.1.0)
+
+THERMOSTAT_USER_DIR : directory used for thermostat user configuration during testing
+                      (used to set USER_THERMOSTAT_HOME environment variable)
+                      (default: <BUILD_DIR>/.thermostat)
+
+THERMOSTAT_DIR      : directory with thermostat for testing (if present)
+                      or directory where to clone thermostat (if not present)
+                      (default: <BUILD_DIR>/thermostat)                   
+
+TOMCAT_DIR          : directory with apache-tomcat used for testing (if present)
+                      or directory where to download thermostat (if not present)
+                      (default: <BUILD_DIR>/tomcat)
+
+KILL_DAEMONS        : if this variable is set to 1 test suite will not ask for
+                      confirmation before killing daemons (mongo, gnome-keyring).
+                      if there is any of them running.
+                      (see Side Efects)
+
+Examples
+---------
+
+testing using default config (builds tests, downloads tomcat and all nessessary
+software and runs test using default config)
+
+    make    
+
+testing thermostat from custom repository (url):
+
+    make THERMOSTAT_REPO_URL=<someUrl>
+
+testing thermostat stored at custom path, using custom tomcat   
+
+    make THERMOSTAT_DIR=<somePath>  TOMCAT_DIR=<somePath>
+
+
+Side Effects
+------------
+
+By default these tests do not modify settings in ~/.thermostat or any other
+files or settings outside this (ThermostatQA) directory (and subdirs).
+
+When using custom Thermostat, tests also modify files in
+<THERMOSTAT_DIR>/distribution/target/image/etc directory.
+
+When using custom apache-tomcat ThermostatQA also deploys thermostat war archive
+in <TOMCAT_DIR>/webapps/thermostat.
+
+Running tests needs to terminate running instances of mongod
+and gnome-keyring-daemon, because it runs theese daemons with custom
+configuration. If some of these deamons running test suite will ask
+for confirmation to kill them. This can be skiped by setting KILL_DAEMONS
+makefile variable.
+(see Important makefile variables)
--- a/outputtexts/1.1.0/thermostat.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/1.1.0/thermostat.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,6 +1,7 @@
 list of commands:
 
  help                   show help for a given command or help overview
+ add-mongodb-user       adds a new mongodb user to the thermostat DB. It reads credentials from standard input.
  agent                  starts and stops the thermostat agent
  clean-data             Drop all data related to all of the specified agents
  dump-heap              trigger a heap dump on the VM
@@ -17,6 +18,8 @@
  shell                  launches the Thermostat interactive shell
  show-heap-histogram    show the heap histogram
  storage                starts and stops the thermostat storage
+ storage-profile        profile how fast storage operations are
  validate               validates a thermostat plug-in XML file against the schema
  vm-info                shows basic information about a VM
  vm-stat                show various statistics about a VM
+ web-storage-service    starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint
--- a/outputtexts/1.1.0/thermostat_help.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/1.1.0/thermostat_help.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,6 +1,7 @@
 list of commands:
 
  help                   show help for a given command or help overview
+ add-mongodb-user       adds a new mongodb user to the thermostat DB. It reads credentials from standard input.
  agent                  starts and stops the thermostat agent
  clean-data             Drop all data related to all of the specified agents
  dump-heap              trigger a heap dump on the VM
@@ -17,6 +18,8 @@
  shell                  launches the Thermostat interactive shell
  show-heap-histogram    show the heap histogram
  storage                starts and stops the thermostat storage
+ storage-profile        profile how fast storage operations are
  validate               validates a thermostat plug-in XML file against the schema
  vm-info                shows basic information about a VM
  vm-stat                show various statistics about a VM
+ web-storage-service    starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint
--- a/outputtexts/1.1.0/thermostat_help_storage.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/1.1.0/thermostat_help_storage.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,13 +1,16 @@
-usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] [-l <level>]
+usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q]
+                  [--permitLocalhostException] [-l <level>]
                   starts and stops the thermostat storage
 
 thermostat storage
-  -d,--dryRun                 run the service in dry run mode
-  -l,--logLevel <logLevel>    sets the log level for this invocation. Possible
-                              values for <logLevel> in decreasing severity are:
-                              SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
-                              and OFF
-  -q,--quiet                  don't produce any output
-     --start                  start the database
-     --status                 check if the database is running
-     --stop                   stop the database
+  -d,--dryRun                      run the service in dry run mode
+  -l,--logLevel <logLevel>         sets the log level for this invocation.
+                                   Possible values for <logLevel> in decreasing
+                                   severity are: SEVERE, WARNING, INFO, CONFIG,
+                                   FINE, FINER, FINEST and OFF
+     --permitLocalhostException    permit local host connections with no
+                                   credentials
+  -q,--quiet                       don't produce any output
+     --start                       start the database
+     --status                      check if the database is running
+     --stop                        stop the database
--- a/outputtexts/head/thermostat.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/head/thermostat.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,12 +1,14 @@
 list of commands:
 
  help                   show help for a given command or help overview
+ add-mongodb-user       adds a new mongodb user to the thermostat DB. It reads credentials from standard input.
  agent                  starts and stops the thermostat agent
  clean-data             Drop all data related to all of the specified agents
  dump-heap              trigger a heap dump on the VM
  find-objects           finds objects in a heapdump
  find-root              finds the shortest path from an object to a GC root
  gui                    launches the GUI client
+ list-categories        lists all registered categories in Storage
  list-heap-dumps        list all heap dumps
  list-vms               lists all currently monitored VMs
  object-info            prints information about an object in a heap dump
@@ -16,7 +18,8 @@
  shell                  launches the Thermostat interactive shell
  show-heap-histogram    show the heap histogram
  storage                starts and stops the thermostat storage
+ storage-profile        profile how fast storage operations are
  validate               validates a thermostat plug-in XML file against the schema
  vm-info                shows basic information about a VM
  vm-stat                show various statistics about a VM
- webservice             starts and stops the thermostat web service
+ web-storage-service    starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint
--- a/outputtexts/head/thermostat_help.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/head/thermostat_help.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,12 +1,14 @@
 list of commands:
 
  help                   show help for a given command or help overview
+ add-mongodb-user       adds a new mongodb user to the thermostat DB. It reads credentials from standard input.
  agent                  starts and stops the thermostat agent
  clean-data             Drop all data related to all of the specified agents
  dump-heap              trigger a heap dump on the VM
  find-objects           finds objects in a heapdump
  find-root              finds the shortest path from an object to a GC root
  gui                    launches the GUI client
+ list-categories        lists all registered categories in Storage
  list-heap-dumps        list all heap dumps
  list-vms               lists all currently monitored VMs
  object-info            prints information about an object in a heap dump
@@ -16,7 +18,8 @@
  shell                  launches the Thermostat interactive shell
  show-heap-histogram    show the heap histogram
  storage                starts and stops the thermostat storage
+ storage-profile        profile how fast storage operations are
  validate               validates a thermostat plug-in XML file against the schema
  vm-info                shows basic information about a VM
  vm-stat                show various statistics about a VM
- webservice             starts and stops the thermostat web service
+ web-storage-service    starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint
--- a/outputtexts/head/thermostat_help_storage.txt	Wed Oct 22 16:41:20 2014 +0200
+++ b/outputtexts/head/thermostat_help_storage.txt	Wed Oct 22 16:42:56 2014 +0200
@@ -1,13 +1,16 @@
-usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] [-l <level>]
+usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q]
+                  [--permitLocalhostException] [-l <level>]
                   starts and stops the thermostat storage
 
 thermostat storage
-  -d,--dryRun                 run the service in dry run mode
-  -l,--logLevel <logLevel>    sets the log level for this invocation. Possible
-                              values for <logLevel> in decreasing severity are:
-                              SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
-                              and OFF
-  -q,--quiet                  don't produce any output
-     --start                  start the database
-     --status                 check if the database is running
-     --stop                   stop the database
+  -d,--dryRun                      run the service in dry run mode
+  -l,--logLevel <logLevel>         sets the log level for this invocation.
+                                   Possible values for <logLevel> in decreasing
+                                   severity are: SEVERE, WARNING, INFO, CONFIG,
+                                   FINE, FINER, FINEST and OFF
+     --permitLocalhostException    permit local host connections with no
+                                   credentials
+  -q,--quiet                       don't produce any output
+     --start                       start the database
+     --status                      check if the database is running
+     --stop                        stop the database
--- a/src/org/thermostat/qa/common/Configuration.java	Wed Oct 22 16:41:20 2014 +0200
+++ b/src/org/thermostat/qa/common/Configuration.java	Wed Oct 22 16:42:56 2014 +0200
@@ -50,7 +50,6 @@
     private String thermostatVersion = null;
     private String thermostatHome = null;
     private String thermostatUserHome = null;
-    private String apacheTomcatHome = null;
     private boolean performCleaningAfterGuiTests = false;
     
     //the way how the screenshots will be provided
@@ -102,16 +101,15 @@
      */
     private void readAllProperties(FileInputStream fileInputStream) throws IOException
     {
-        Properties properties = new Properties();
-        properties.load(fileInputStream);
-        this.thermostatExecutablePath = getPathProperty(properties, "thermostat_executable_path");
-        this.thermostatExecutableName = properties.getProperty("thermostat_executable_name");
-        this.thermostatVersion = properties.getProperty("thermostat_version");
-        this.thermostatHome = getPathProperty(properties, "thermostat_home");
-        this.thermostatUserHome = getPathProperty(properties, "thermostat_user_home");
-        this.apacheTomcatHome = getPathProperty(properties, "apache_tomcat_home");
+        //Properties properties = new Properties();
+        //properties.load(fileInputStream);
+        this.thermostatExecutablePath = getPathProperty("thermostat.executable.path"); // getPathProperty(properties, "thermostat_executable_path");
+        this.thermostatExecutableName = System.getProperty("thermostat.executable.name"); // properties.getProperty("thermostat_executable_name");
+        this.thermostatVersion = System.getProperty("thermostat.version"); // properties.getProperty("thermostat_version");
+        this.thermostatHome = getPathProperty("thermostat.home"); // getPathProperty(properties, "thermostat_home");
+        this.thermostatUserHome = getPathProperty("thermostat.user.home"); // getPathProperty(properties, "thermostat_user_home");
         
-        String str = properties.getProperty("screenshot_source");
+        String str = System.getProperty("screenshot.source"); // properties.getProperty("screenshot_source");
         if( str.equals("dummy") ){
             this.screenshotsSource = ScreenshotSourceType.DUMMY;
         }else if( str.equals("normal")){
@@ -120,12 +118,12 @@
             this.screenshotsSource = ScreenshotSourceType.XVFB;
         }
        
-        this.performCleaningAfterGuiTests = properties.getProperty("clean_after_gui_test").equals("true");
+        this.performCleaningAfterGuiTests = System.getProperty("clean.after.gui.test").toLowerCase().equals("true") ;// properties.getProperty("clean_after_gui_test").equals("true");
     }
     
     /* eliminating need of tailing separator */
-    private static String getPathProperty(Properties properties, String name){
-        String value = properties.getProperty(name);
+    private static String getPathProperty(String name) { // Properties properties, String name){
+        String value = System.getProperty(name);// properties.getProperty(name);
         return value.endsWith(File.separator) ? value : value + File.separator;
     }
 
@@ -165,14 +163,7 @@
     {
         return this.thermostatUserHome;
     }
-    
-    public String getApacheTomcatHome()
-    {
-        return this.apacheTomcatHome;
-    }
 
-
-    
     public boolean getPerformCleaningAfterGuiTests() {
         return performCleaningAfterGuiTests;
     }
--- a/src/org/thermostat/qa/framework/ThermostatUtilities.java	Wed Oct 22 16:41:20 2014 +0200
+++ b/src/org/thermostat/qa/framework/ThermostatUtilities.java	Wed Oct 22 16:42:56 2014 +0200
@@ -36,6 +36,7 @@
 
 import java.awt.event.KeyEvent;
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
@@ -58,6 +59,9 @@
 
 public abstract class ThermostatUtilities
 {
+
+    private static final String tomcatHome = System.getProperty("tomcat.home");
+
     /**
      * Expected exit value of all thermostat processes.
      */
@@ -615,7 +619,7 @@
     {
         //startup.sh from the apache-tomcat dir
         List<String> lines = new LinkedList<String>();
-        lines.add(this.configuration.getApacheTomcatHome() + "bin/startup.sh");
+        lines.add(tomcatHome + File.separator + "bin/startup.sh");
 
         runBashScriptWithContent("webStorage_startTomcat.sh", lines);     
     }
@@ -624,7 +628,7 @@
     {
         //shutdown.sh from the apache-tomcat dir
         List<String> lines = new LinkedList<String>();
-        lines.add(this.configuration.getApacheTomcatHome() + "bin/shutdown.sh");
+        lines.add(tomcatHome + File.separator + "bin/shutdown.sh");
 
         runBashScriptWithContent("webStorage_stopTomcat.sh", lines);  
     }
@@ -634,7 +638,7 @@
         List<String> result = new LinkedList<String>();
         
         //for now only the catalina.out file
-        String catalinaOutFile = this.configuration.getApacheTomcatHome()+"logs/"+filename;
+        String catalinaOutFile = tomcatHome + File.separator + "logs/" + filename;
         result = FileUtils.readTextFile(catalinaOutFile);
         
         return result;
@@ -648,14 +652,14 @@
         //and localhost_access_log_* files
         
         List<String> lines = new LinkedList<String>();
-        lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage.* > " +
-                        this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage-logs.txt");
+        lines.add("cat " + tomcatHome + File.separator + "logs/thermostat-web-storage.* > " +
+                        tomcatHome + File.separator + "logs/thermostat-web-storage-logs.txt");
 
-        lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/localhost_access_log_* > " +
-                        this.configuration.getApacheTomcatHome() + "logs/localhost_access_logs.txt");
+        lines.add("cat " + tomcatHome + File.separator + "logs/localhost_access_log_* > " +
+                        tomcatHome + File.separator + "logs/localhost_access_logs.txt");
 
-        lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/catalina* > " +
-                        this.configuration.getApacheTomcatHome() + "logs/catalina-logs.txt");
+        lines.add("cat " + tomcatHome + File.separator + "logs/catalina* > " +
+                        tomcatHome + File.separator + "logs/catalina-logs.txt");
         
         runBashScriptWithContent("webStorage_allThermostatLogsInOne.sh", lines);  
     }
@@ -665,9 +669,9 @@
         //rm all log files
         List<String> lines = new LinkedList<String>();
                 
-        lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/catalina*");
-        lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage*");
-        lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/localhost_access_log*");
+        lines.add("rm "+ tomcatHome + File.separator + "logs/catalina*");
+        lines.add("rm "+ tomcatHome + File.separator + "logs/thermostat-web-storage*");
+        lines.add("rm "+ tomcatHome + File.separator + "logs/localhost_access_log*");
         
         runBashScriptWithContent("webStorage_removeAllThermostatLogsFromTomcat.sh", lines);
     }
--- a/src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java	Wed Oct 22 16:41:20 2014 +0200
+++ b/src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java	Wed Oct 22 16:42:56 2014 +0200
@@ -79,7 +79,7 @@
         //list-vms, find a running vm, dump a heap
         try
         {
-            List<String> vms = thermostatListVms("", "");
+            List<String> vms = thermostatListVms("client-tester", "heslo2");
             boolean foundRunning = false;
             int index = -1;
             for(String vm : vms)
--- a/src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java	Wed Oct 22 16:41:20 2014 +0200
+++ b/src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java	Wed Oct 22 16:42:56 2014 +0200
@@ -87,7 +87,7 @@
         robot.saveScreenshot("VMViewHeapAnalyzer2");
         
         //click on Heap Dump button
-        r = checkForPattern(robot, Patterns.VMViewHeapAnalyzerTab.HEAP_DUMP_LABEL, "vm view icon");
+        r = checkForPattern(robot, Patterns.VMViewHeapAnalyzerTab.HEAP_DUMP_ICON, "vm view icon");
         robot.clickToRectangle(r);
      
         return robot;
@@ -102,8 +102,8 @@
     @Override
     protected void setUp()
     {
-        // TODO
-        //start storage and agent
+        startStorage();
+        new AgentThread().start();
         try
         {
             this.robot = dumpAHeap();
--- a/src/org/thermostat/qa/testsuites/OutputMessagesTest.java	Wed Oct 22 16:41:20 2014 +0200
+++ b/src/org/thermostat/qa/testsuites/OutputMessagesTest.java	Wed Oct 22 16:42:56 2014 +0200
@@ -78,8 +78,7 @@
         {"help", "shell"},
         {"help", "storage"},
         {"help", "vm-info"},
-        {"help", "vm-stat"},
-        {"help", "webservice"} };
+        {"help", "vm-stat"}};
 
     private String outputsPath;
 
@@ -102,8 +101,7 @@
     THERMOSTAT_HELP_SHOW_HEAP_HISTOGRAM_MESSAGE,
     THERMOSTAT_HELP_STORAGE_MESSAGE,
     THERMOSTAT_HELP_VM_INFO_MESSAGE,
-    THERMOSTAT_HELP_VM_STAT_MESSAGE,
-    THERMOSTAT_HELP_WEBSERVICE_MESSAGE;
+    THERMOSTAT_HELP_VM_STAT_MESSAGE;
 
     @Override
     protected void setUp()
@@ -129,7 +127,6 @@
         THERMOSTAT_HELP_STORAGE_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_storage.txt");
         THERMOSTAT_HELP_VM_INFO_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_vm-info.txt");
         THERMOSTAT_HELP_VM_STAT_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_vm-stat.txt");
-        THERMOSTAT_HELP_WEBSERVICE_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_webservice.txt");
     }
 
     @Override
@@ -394,17 +391,6 @@
     }
 
     /**
-     * Method testCheckHelpWebserviceMessage
-     * checks output of command "thermostat help webservice".
-     * 
-     * @throws IOException
-     */
-    public void testCheckHelpWebserviceMessage() throws IOException
-    {
-        readAndCheckThermostatMessage(THERMOSTAT_HELP_WEBSERVICE_MESSAGE, allflags[20]);
-    }
-
-    /**
      * Entry point to this test.
      *
      * @param args
--- a/storageconfig/1.1.0/db-mongodb/agent.auth	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/1.1.0/db-mongodb/agent.auth	Wed Oct 22 16:42:56 2014 +0200
@@ -4,6 +4,5 @@
 # Uncomment the following lines and replace with your storage authentication
 # parameters as needed.
 #
-#username=thermostat
-#password=thermostat
-
+username=agent-tester
+password=heslo1
--- a/storageconfig/1.1.0/db-mongodb/client.properties	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/1.1.0/db-mongodb/client.properties	Wed Oct 22 16:42:56 2014 +0200
@@ -1,5 +1,5 @@
-#
-#Mon Aug 26 10:34:41 CEST 2013
+#Wed Sep 10 14:03:19 CEST 2014
 connection-url=mongodb\://127.0.0.1\:27518
-save-entitlements=false
-username=
+save-entitlements=true
+username=client-tester
+
--- a/storageconfig/1.1.0/web-tomcat/client.properties	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/1.1.0/web-tomcat/client.properties	Wed Oct 22 16:42:56 2014 +0200
@@ -1,6 +1,6 @@
 #
 #Thu Aug 22 16:10:25 CEST 2013
-password=heslo2
+#password=heslo2
 connection-url=http\://127.0.0.1\:8080/thermostat/storage
 save-entitlements=true
 username=client-tester
--- a/storageconfig/head/db-mongodb/agent.auth	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/head/db-mongodb/agent.auth	Wed Oct 22 16:42:56 2014 +0200
@@ -4,6 +4,5 @@
 # Uncomment the following lines and replace with your storage authentication
 # parameters as needed.
 #
-#username=thermostat
-#password=thermostat
-
+username=agent-tester
+password=heslo1
--- a/storageconfig/head/db-mongodb/client.properties	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/head/db-mongodb/client.properties	Wed Oct 22 16:42:56 2014 +0200
@@ -1,5 +1,5 @@
-#
-#Mon Aug 26 10:34:41 CEST 2013
+#Wed Sep 10 14:03:19 CEST 2014
 connection-url=mongodb\://127.0.0.1\:27518
-save-entitlements=false
-username=
+save-entitlements=true
+username=client-tester
+
--- a/storageconfig/head/web-tomcat/client.properties	Wed Oct 22 16:41:20 2014 +0200
+++ b/storageconfig/head/web-tomcat/client.properties	Wed Oct 22 16:42:56 2014 +0200
@@ -1,6 +1,6 @@
 #
 #Thu Aug 22 16:10:25 CEST 2013
-password=heslo2
+#password=heslo2
 connection-url=http\://127.0.0.1\:8080/thermostat/storage
 save-entitlements=true
 username=client-tester
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/storageconfig/keyrings/Default.keyring	Wed Oct 22 16:42:56 2014 +0200
@@ -0,0 +1,40 @@
+[keyring]
+display-name=Default
+ctime=1411732163
+mtime=0
+lock-on-idle=false
+lock-after=false
+
+[2]
+item-type=0
+display-name=Thermostat auth info for: client-tester@mongodb://127.0.0.1:27518
+secret=heslo2
+mtime=1411732260
+ctime=1411732260
+
+[2:attribute0]
+name=url
+type=string
+value=mongodb://127.0.0.1:27518
+
+[2:attribute1]
+name=username
+type=string
+value=client-tester
+
+[1]
+item-type=0
+display-name=Thermostat auth info for: client-tester@http://127.0.0.1:8080/thermostat/storage
+secret=heslo2
+mtime=1411732163
+ctime=1411732163
+
+[1:attribute0]
+name=url
+type=string
+value=http://127.0.0.1:8080/thermostat/storage
+
+[1:attribute1]
+name=username
+type=string
+value=client-tester
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/storageconfig/keyrings/default	Wed Oct 22 16:42:56 2014 +0200
@@ -0,0 +1,1 @@
+Default
\ No newline at end of file