~rpadovani/webbrowser-app/addressBarFullWidth

« back to all changes in this revision

Viewing changes to tests/autopilot/webbrowser_app/tests/test_settings.py

  • Committer: Riccardo Padovani
  • Date: 2015-06-12 09:40:27 UTC
  • mfrom: (761.75.148 webbrowser-app)
  • Revision ID: riccardo@rpadovani.com-20150612094027-m45snw575knv09py
Merge from upstream and fix conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
 
2
#
 
3
# Copyright 2015 Canonical
 
4
#
 
5
# This program is free software: you can redistribute it and/or modify it
 
6
# under the terms of the GNU General Public License version 3, as published
 
7
# by the Free Software Foundation.
 
8
#
 
9
# This program is distributed in the hope that it will be useful,
 
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
12
# GNU General Public License for more details.
 
13
#
 
14
# You should have received a copy of the GNU General Public License
 
15
# along with this program. If not, see <http://www.gnu.org/licenses/>.
 
16
 
 
17
from datetime import datetime
 
18
 
 
19
from webbrowser_app.tests import StartOpenRemotePageTestCaseBase
 
20
 
 
21
from testtools.matchers import Equals, GreaterThan, NotEquals
 
22
from autopilot.matchers import Eventually
 
23
from autopilot.platform import model
 
24
 
 
25
import ubuntuuitoolkit as uitk
 
26
 
 
27
from webbrowser_app.emulators import browser
 
28
 
 
29
 
 
30
class TestSettings(StartOpenRemotePageTestCaseBase):
 
31
 
 
32
    def get_homepage_dialog(self):
 
33
        return self.main_window.wait_select_single("Dialog",
 
34
                                                   objectName="homepageDialog")
 
35
 
 
36
    def test_open_close_settings_page(self):
 
37
        settings = self.open_settings()
 
38
        settings.get_header().click_back_button()
 
39
        settings.wait_until_destroyed()
 
40
 
 
41
    def test_open_close_searchengine_page(self):
 
42
        settings = self.open_settings()
 
43
        searchengine = settings.get_searchengine_entry()
 
44
        old_engine = searchengine.subText
 
45
        self.assertThat(old_engine, NotEquals(""))
 
46
        self.pointing_device.click_object(searchengine)
 
47
        searchengine_page = settings.get_searchengine_page()
 
48
        searchengine_header = searchengine_page.select_single(
 
49
            browser.SettingsPageHeader)
 
50
        searchengine_header.click_back_button()
 
51
        searchengine_page.wait_until_destroyed()
 
52
        self.assertThat(searchengine.subText, Equals(old_engine))
 
53
 
 
54
    def test_change_searchengine(self):
 
55
        settings = self.open_settings()
 
56
        searchengine = settings.get_searchengine_entry()
 
57
        old_engine = searchengine.subText
 
58
        self.assertThat(old_engine, NotEquals(""))
 
59
        self.pointing_device.click_object(searchengine)
 
60
        searchengine_page = settings.get_searchengine_page()
 
61
        self.assertThat(lambda: len(searchengine_page.select_many("Standard")),
 
62
                        Eventually(GreaterThan(1)))
 
63
        delegates = searchengine_page.select_many("Standard")
 
64
        delegates.sort(key=lambda delegate: delegate.objectName)
 
65
        new_index = -1
 
66
        for (i, delegate) in enumerate(delegates):
 
67
            checkbox = delegate.select_single(uitk.CheckBox)
 
68
            if (new_index == -1) and not checkbox.checked:
 
69
                new_index = i
 
70
            self.assertThat(checkbox.checked,
 
71
                            Equals(delegate.text == old_engine))
 
72
        new_engine = delegates[new_index].text
 
73
        self.assertThat(new_engine, NotEquals(old_engine))
 
74
        self.pointing_device.click_object(
 
75
            delegates[new_index].select_single(uitk.CheckBox))
 
76
        searchengine_page.wait_until_destroyed()
 
77
        self.assertThat(searchengine.subText, Eventually(Equals(new_engine)))
 
78
 
 
79
    def test_change_homepage(self):
 
80
        settings = self.open_settings()
 
81
        homepage = settings.get_homepage_entry()
 
82
        old = homepage.subText
 
83
        self.assertThat(old, NotEquals(""))
 
84
 
 
85
        # First test cancelling the edition
 
86
        self.pointing_device.click_object(homepage)
 
87
        dialog = self.get_homepage_dialog()
 
88
        textField = dialog.select_single(uitk.TextField,
 
89
                                         objectName="homepageDialog.text")
 
90
        self.assertThat(textField.text, Eventually(Equals(old)))
 
91
        cancel_button = dialog.select_single(
 
92
            "Button",
 
93
            objectName="homepageDialog.cancelButton")
 
94
        self.pointing_device.click_object(cancel_button)
 
95
        dialog.wait_until_destroyed()
 
96
        self.assertThat(homepage.subText, Equals(old))
 
97
 
 
98
        # Then test actually changing the homepage
 
99
        self.pointing_device.click_object(homepage)
 
100
        dialog = self.get_homepage_dialog()
 
101
        textField = dialog.select_single(uitk.TextField,
 
102
                                         objectName="homepageDialog.text")
 
103
        self.assertThat(textField.text, Eventually(Equals(old)))
 
104
        textField.activeFocus.wait_for(True)
 
105
        new = "http://test/{}".format(int(datetime.now().timestamp()))
 
106
        textField.write(new, True)
 
107
        save_button = dialog.select_single(
 
108
            "Button",
 
109
            objectName="homepageDialog.saveButton")
 
110
        self.pointing_device.click_object(save_button)
 
111
        dialog.wait_until_destroyed()
 
112
        self.assertThat(homepage.subText, Eventually(Equals(new)))
 
113
 
 
114
    def test_open_close_privacy_settings(self):
 
115
        settings = self.open_settings()
 
116
        privacy = settings.get_privacy_entry()
 
117
        self.pointing_device.click_object(privacy)
 
118
        privacy_page = settings.get_privacy_page()
 
119
        privacy_header = privacy_page.select_single(browser.SettingsPageHeader)
 
120
        privacy_header.click_back_button()
 
121
        privacy_page.wait_until_destroyed()
 
122
 
 
123
    def test_clear_browsing_history(self):
 
124
        settings = self.open_settings()
 
125
        privacy = settings.get_privacy_entry()
 
126
        self.pointing_device.click_object(privacy)
 
127
        privacy_page = settings.get_privacy_page()
 
128
        clear_history = privacy_page.select_single(
 
129
            "Standard",
 
130
            objectName="privacy.clearHistory")
 
131
        self.assertThat(clear_history.enabled, Equals(True))
 
132
        self.pointing_device.click_object(clear_history)
 
133
        self.assertThat(clear_history.enabled, Eventually(Equals(False)))
 
134
 
 
135
    def test_clear_cache(self):
 
136
        settings = self.open_settings()
 
137
        privacy = settings.get_privacy_entry()
 
138
        self.pointing_device.click_object(privacy)
 
139
        privacy_page = settings.get_privacy_page()
 
140
        clear_cache = privacy_page.select_single(
 
141
            "Standard",
 
142
            objectName="privacy.clearCache")
 
143
        self.assertThat(clear_cache.enabled, Equals(True))
 
144
        self.pointing_device.click_object(clear_cache)
 
145
        self.assertThat(clear_cache.enabled, Eventually(Equals(True)))
 
146
 
 
147
    def test_reset_browser_settings(self):
 
148
        settings = self.open_settings()
 
149
        reset = settings.get_reset_settings_entry()
 
150
        self.pointing_device.click_object(reset)
 
151
 
 
152
        searchengine = settings.get_searchengine_entry()
 
153
        self.assertThat(searchengine.subText,
 
154
                        Eventually(Equals("Google")))
 
155
 
 
156
        homepage = settings.get_homepage_entry()
 
157
        self.assertThat(homepage.subText,
 
158
                        Eventually(Equals("http://start.ubuntu.com")))
 
159
 
 
160
        restore_session = settings.get_restore_session_entry()
 
161
        checkbox = restore_session.select_single(uitk.CheckBox)
 
162
        self.assertThat(checkbox.checked, Eventually(Equals(True)))
 
163
 
 
164
        background_tabs = settings.get_background_tabs_entry()
 
165
        checkbox = background_tabs.select_single(uitk.CheckBox)
 
166
        self.assertThat(checkbox.checked,
 
167
                        Eventually(Equals(model() == 'Desktop')))