~abreu-alexandre/webbrowser-app/container-extension

« back to all changes in this revision

Viewing changes to tests/autopilot/webapp_container/tests/test_url_patterns.py

  • Committer: CI Train Bot
  • Author(s): Alexandre Abreu
  • Date: 2016-04-05 15:42:40 UTC
  • mfrom: (1387.1.2 tata)
  • Revision ID: ci-train-bot@canonical.com-20160405154240-kfzvblpl0eii05se
Add --open-external-url-in-overlay option to allow externals urls (not part of patterns) are opened in overlays instead of external browser Fixes: #1548575
Approved by: David Barth, Alberto Mardegan

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
 
16
 
from testtools.matchers import Equals
 
16
from testtools.matchers import Equals, Contains
17
17
from autopilot.matchers import Eventually
18
18
 
19
19
from webapp_container.tests import WebappContainerTestCaseWithLocalContentBase
43
43
        self.assertThat(
44
44
            lambda: external_open_watcher.was_emitted,
45
45
            Eventually(Equals(True)))
 
46
 
 
47
    def test_pattern_with_external_url_in_overlay(self):
 
48
        args = ["--webappUrlPatterns=http://www.test.com/*",
 
49
                "--open-external-url-in-overlay"]
 
50
        rule = 'MAP *.test.com:80 ' + self.get_base_url_hostname()
 
51
        self.launch_webcontainer_app_with_local_http_server(
 
52
            args,
 
53
            '',
 
54
            {'WEBAPP_CONTAINER_BLOCK_OPEN_URL_EXTERNALLY': '1',
 
55
                'UBUNTU_WEBVIEW_HOST_MAPPING_RULES': rule},
 
56
            "http://www.test.com/with-external-link")
 
57
        self.get_webcontainer_window().visible.wait_for(True)
 
58
 
 
59
        popup_controller = self.get_popup_controller()
 
60
        new_view_watcher = popup_controller.watch_signal(
 
61
            'newViewCreated(QString)')
 
62
 
 
63
        views = self.get_popup_overlay_views()
 
64
        self.assertThat(len(views), Equals(0))
 
65
 
 
66
        webview = self.get_oxide_webview()
 
67
        external_open_watcher = webview.watch_signal(
 
68
            'openExternalUrlTriggered(QString)')
 
69
 
 
70
        self.pointing_device.click_object(webview)
 
71
 
 
72
        self.assertThat(
 
73
            lambda: new_view_watcher.was_emitted,
 
74
            Eventually(Equals(True)))
 
75
        self.assertThat(
 
76
            lambda: len(self.get_popup_overlay_views()),
 
77
            Eventually(Equals(1)))
 
78
        views = self.get_popup_overlay_views()
 
79
        overlay = views[0]
 
80
        self.assertThat(
 
81
            overlay.select_single(objectName="overlayWebview").url,
 
82
            Contains('ubuntu'))
 
83
 
 
84
        self.assertThat(
 
85
            external_open_watcher.was_emitted,
 
86
            Equals(False))