diff --git a/Makefile b/Makefile index 6bd672c..1ee9b74 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ PACKAGE_NAME := $(shell awk '/"name":/ {gsub(/[",]/, "", $$2); print $$2}' package.json) VERSION := $(shell T=$$(git describe 2>/dev/null) || T=1; echo $$T | tr '-' '.') ifeq ($(TEST_OS),) -TEST_OS = centos-7 +TEST_OS = rhel-x endif export TEST_OS VM_IMAGE=$(CURDIR)/test/images/$(TEST_OS) @@ -120,6 +120,7 @@ rpm: dist-gzip cockpit-$(PACKAGE_NAME).spec $(VM_IMAGE): rpm bots rm -f $(VM_IMAGE) $(VM_IMAGE).qcow2 bots/image-customize -v -i cockpit -i `pwd`/cockpit-$(PACKAGE_NAME)-*.noarch.rpm -s $(CURDIR)/test/vm.install $(TEST_OS) + bots/image-customize -v -u ./test/files/1.journal:/root/1.journal $(TEST_OS) # convenience target for the above vm: $(VM_IMAGE) @@ -127,7 +128,7 @@ vm: $(VM_IMAGE) # run the browser integration tests; skip check for SELinux denials check: $(NODE_MODULES_TEST) $(VM_IMAGE) test/common - TEST_AUDIT_NO_SELINUX=1 test/check-application + TEST_AUDIT_NO_SELINUX=1 test/check-application -s # checkout Cockpit's bots/ directory for standard test VM images and API to launch them # must be from cockpit's master, as only that has current and existing images; but testvm.py API is stable @@ -139,7 +140,7 @@ bots: # checkout Cockpit's test API; this has no API stability guarantee, so check out a stable tag # when you start a new project, use the latest relese, and update it from time to time test/common: - git fetch --depth=1 https://github.com/cockpit-project/cockpit.git 176 + git fetch --depth=1 https://github.com/cockpit-project/cockpit.git 180 git checkout --force FETCH_HEAD -- test/common git reset test/common diff --git a/test/check-application b/test/check-application index 40431e2..1d61a4b 100755 --- a/test/check-application +++ b/test/check-application @@ -12,40 +12,50 @@ sys.path.append(os.path.join(TEST_DIR, "common")) sys.path.append(os.path.join(os.path.dirname(TEST_DIR), "bots/machine")) import testlib - +# Test with pre-recorded journal with tlog UID 981 class TestApplication(testlib.MachineCase): - def testBasic(self): + def testPlay(self): b = self.browser m = self.machine + m.execute("cp /root/1.journal /var/log/journal/") + self.login_and_go("/session-recording") + b.wait_present(".content-header-extra") + b.wait_present("#user") + b.click(".listing-ct-item") + b.wait_present("button.margin-right-btn:nth-child(3)") + b.click("button.margin-right-btn:nth-child(3)") + b.wait_timeout(15000) + b.wait_present(".fa-pause") + b.click("button.margin-right-btn:nth-child(3)") + b.snapshot('play-default') + m.execute("rm -rf /var/log/journal/1.journal") - self.login_and_go("/starter-kit") - # verify expected heading - b.wait_present(".container-fluid h2") - b.wait_text(".container-fluid h2", "Starter Kit") - - # verify expected host name - hostname = m.execute("hostname").strip() - b.wait_present(".container-fluid p") - b.wait_text(".container-fluid p", "Running on " + hostname) - - # change language to German - b.switch_to_top() - b.click("#content-user-name") - b.click(".display-language-menu a") - b.wait_popup('display-language') - b.set_val("#display-language select", "de-de") - b.click("#display-language-select-button") - b.expect_load() - # HACK: work around language switching in Chrome not working in current session (Cockpit issue #8160) - b.reload(ignore_cache=True) - b.wait_present("#content") - # menu label (from manifest) should be translated - b.wait_text("#host-apps a[href='/starter-kit']", "Bausatz") - - b.go("/starter-kit") - b.enter_page("/starter-kit") - # page label (from js) should be translated - b.wait_in_text(".container-fluid p", "Läuft auf") + def testSkip(self): + b = self.browser + m = self.machine + m.execute("cp /root/1.journal /var/log/journal/") + self.login_and_go("/session-recording") + b.wait_present(".content-header-extra") + b.wait_present("#user") + b.click(".listing-ct-item") + b.wait_present("button.margin-right-btn:nth-child(3)") + b.wait_present("button.margin-right-btn:nth-child(4)") + b.click("button.margin-right-btn:nth-child(4)") + b.wait_timeout(1000) + b.wait_present("button.margin-right-btn:nth-child(4)") + b.click("button.margin-right-btn:nth-child(4)") + b.wait_timeout(1000) + b.wait_present("button.margin-right-btn:nth-child(4)") + b.click("button.margin-right-btn:nth-child(4)") + b.wait_timeout(1000) + b.wait_present("button.margin-right-btn:nth-child(4)") + b.click("button.margin-right-btn:nth-child(4)") + b.wait_timeout(1000) + b.wait_present("button.margin-right-btn:nth-child(4)") + b.click("button.margin-right-btn:nth-child(4)") + b.wait_timeout(1000) + b.snapshot('play-default') + m.execute("rm -rf /var/log/journal/1.journal") if __name__ == '__main__': testlib.test_main() diff --git a/test/files/1.journal b/test/files/1.journal new file mode 100644 index 0000000..c14bedf Binary files /dev/null and b/test/files/1.journal differ