#!/usr/bin/python # -*- coding: utf-8 -*- # This file is part of Cockpit. # # Copyright (C) 2013 Red Hat, Inc. # # Cockpit is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Cockpit is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Cockpit; If not, see . import parent from testlib import * test_manifest = """ { "tools": { "test": { "label": "Test" } }, "content-security-policy": "script-src 'self' 'unsafe-inline'" } """ test_html = """

Test

""" class TestPackages(MachineCase): def testBasic(self): m = self.machine b = self.browser m.needs_writable_usr() self.login_and_go("/playground/pkgs") b.switch_to_top() b.wait_present("#sidebar-tools li:contains(Terminal)") m.execute("mkdir /usr/share/cockpit/test") m.write("/usr/share/cockpit/test/manifest.json", test_manifest) m.write("/usr/share/cockpit/test/test.html", test_html) b.enter_page("/playground/pkgs") b.click("#reload") b.switch_to_top() b.wait_present("#sidebar-tools a:contains(Test)") b.click("#sidebar-tools a:contains(Test)") b.enter_page("/test/test") b.wait_text("h1", "Test") m.execute("rm -rf /usr/share/cockpit/test") b.switch_to_top() b.switch_to_frame("cockpit1:localhost/playground/pkgs") b.click("#reload") b.switch_to_top() b.wait_not_present("#sidebar-tools a:contains(Test)") if __name__ == '__main__': test_main()