~diegosarmentero/ubuntuone-windows-installer/ui-improves

« back to all changes in this revision

Viewing changes to ubuntuone_installer/gui/qt/tests/test_gui.py

  • Committer: Tarmac
  • Author(s): ralsina
  • Date: 2011-07-22 19:30:55 UTC
  • mfrom: (18.2.16 show_spinner)
  • Revision ID: tarmac-20110722193055-s0w8a0vbi7wtukvw
Make all server-related actions show the overlay, and remove it when showing a page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
from ubuntuone_installer.gui.qt import gui
37
37
from ubuntuone_installer.gui.qt.tests import BaseTestCase
38
38
from ubuntuone_installer.gui.qt import embedded_sso
 
39
from ubuntuone_installer.gui.qt import forgotten
39
40
from ubuntuone_installer.gui.qt import local_folders
40
41
from ubuntuone_installer.gui.qt import setup_account
41
42
from ubuntuone_installer.gui.qt.ui import (
80
81
        return self.result  # Means reject
81
82
 
82
83
 
 
84
class FakeOverlay(object):
 
85
 
 
86
    """A fake delay overlay."""
 
87
 
 
88
    def __init__(self, *args, **kwargs):
 
89
        """Initialize."""
 
90
        self.show_counter = 0
 
91
        self.hide_counter = 0
 
92
        self.args = (args, kwargs)
 
93
 
 
94
    def show(self):
 
95
        """Fake show."""
 
96
        self.show_counter += 1
 
97
 
 
98
    def hide(self):
 
99
        """Fake hide."""
 
100
        self.hide_counter += 1
 
101
 
 
102
 
83
103
class MainWindowTestCase(BaseTestCase):
84
104
    """Test the qt main window."""
85
105
 
97
117
        self.patch(gui, "ForgottenPasswordController", FakeController)
98
118
        self.patch(gui, "ResetPasswordController", FakeController)
99
119
        self.patch(gui, "AreYouSure", FakeAreYouSure)
 
120
        self.patch(gui, "LoadingOverlay", FakeOverlay)
100
121
        super(MainWindowTestCase, self).setUp()
101
122
 
 
123
    def test_critical(self):
 
124
        """Show a critical popup, but first hide the overlay."""
 
125
        self.assertEqual(self.ui.overlay.hide_counter, 1)
 
126
        self.patch(gui.QtGui.QMessageBox, "critical", self._set_called)
 
127
        self.ui.critical("WORRY!")
 
128
        self.assertEqual(self.ui.overlay.hide_counter, 2)
 
129
        self.assertEqual(self._called, (('WORRY!',), {}))
 
130
 
 
131
    def test_forgotten_password_controller_error(self):
 
132
        """When there is an error, it should hide the overlay."""
 
133
        self.assertEqual(self.ui.overlay.hide_counter, 1)
 
134
        controller = forgotten.ForgottenPasswordController()
 
135
        controller.view = self.ui.forgotten
 
136
        controller.on_password_reset_error("app_name",
 
137
            {'errtype': 'ResetPasswordTokenError'})
 
138
        self.assertEqual(self.ui.overlay.hide_counter, 2)
 
139
 
 
140
    def test_overlay_connection_setup_account(self):
 
141
        """Make sure we don't lose connections to the overlay."""
 
142
        self.assertEqual(self.ui.overlay.show_counter, 0)
 
143
        # This test is different from the ones below.
 
144
        # For some reason, click() doesn't trigger the connected
 
145
        # slot, but clicked.emit() does. The reason is unknown.
 
146
        self.ui.setup_account.ui.set_up_button.clicked.emit(False)
 
147
        self.assertEqual(self.ui.overlay.show_counter, 1)
 
148
 
 
149
    def test_overlay_connection_email_verification(self):
 
150
        """Make sure we don't lose connections to the overlay."""
 
151
        self.assertEqual(self.ui.overlay.show_counter, 0)
 
152
        self.ui.email_verification.next_button.click()
 
153
        self.assertEqual(self.ui.overlay.show_counter, 1)
 
154
 
 
155
    def test_overlay_connection_current_user(self):
 
156
        """Make sure we don't lose connections to the overlay."""
 
157
        self.assertEqual(self.ui.overlay.show_counter, 0)
 
158
        self.ui.current_user.ui.sign_in_button.click()
 
159
        self.assertEqual(self.ui.overlay.show_counter, 1)
 
160
 
 
161
    def test_overlay_connection_forgotten_password(self):
 
162
        """Make sure we don't lose connections to the overlay."""
 
163
        self.assertEqual(self.ui.overlay.show_counter, 0)
 
164
        self.ui.forgotten.ui.send_button.click()
 
165
        self.assertEqual(self.ui.overlay.show_counter, 1)
 
166
 
 
167
    def test_overlay_connection_reset_password(self):
 
168
        """Make sure we don't lose connections to the overlay."""
 
169
        self.assertEqual(self.ui.overlay.show_counter, 0)
 
170
        self.ui.reset_password.ui.reset_password_button.click()
 
171
        self.assertEqual(self.ui.overlay.show_counter, 1)
 
172
 
 
173
    def test_next_hides_overlay(self):
 
174
        """Make sure next() hides the overlay."""
 
175
        self.ui.next()
 
176
        # This is 2 because we hide it once on __init__()
 
177
        # and then again on next()
 
178
        self.assertEqual(self.ui.overlay.hide_counter, 2)
 
179
 
102
180
    def test_done_calls_custom_close_callback(self):
103
181
        """When closing the window, close_callback is called."""
104
182
        gui.AreYouSure.result = 0
192
270
    def test_current_user_controller_parameters(self):
193
271
        """Compare controller parameters with expected values."""
194
272
        self.assertEqual(self.ui.current_user_controller.args,
195
 
        ((), {'title': gui.TITLE_STYLE % gui.SIGN_IN,
 
273
        ((), {'message_box': self.ui,
 
274
              'title': gui.TITLE_STYLE % gui.SIGN_IN,
196
275
              'subtitle': gui.SIGN_IN_SUBTITLE}))
197
276
 
198
277
    def test_stage_progression_1(self):