~diegosarmentero/ubuntuone-windows-installer/local-folders-get_info-fail

« back to all changes in this revision

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

- Fixed: Setup account button can be clicked with password not matching (LP: #850334).

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
from ubuntuone_installer.gui.qt.ui import setup_account_ui
34
34
 
35
35
 
36
 
class FakeValidationDict(object):
37
 
    """A Fake dictionary to replace validation_functions on Setup Account."""
38
 
 
39
 
    def __init__(self):
40
 
        for i in xrange(len(self)):
41
 
            # set all the instance variables
42
 
            setattr(FakeValidationDict, 'valid%s' % i, False)
43
 
            setattr(self, 'validate_%s' % i, self.wrapper(i))
44
 
 
45
 
    def __getitem__(self, i):
46
 
        """Get the proper function depending on the index received."""
47
 
        return getattr(self, 'validate_%s' % i)
48
 
 
49
 
    def __getslice__(self, i, j):
50
 
        """Check that the class length is not exceded and return the funcs."""
51
 
        j = j if j <= len(self) else len(self)
52
 
        return [self[q] for q in xrange(j)]
53
 
 
54
 
    def __len__(self):
55
 
        """Return the number of functions in this class."""
56
 
        return 4
57
 
 
58
 
    def wrapper(self, i):
59
 
        """Change the state of the attributes based on the index."""
60
 
        def inner(*args, **kwargs):
61
 
            """Replace the value of the attributes depending on the index."""
62
 
            for j in xrange(i + 1):
63
 
                setattr(FakeValidationDict, 'valid%s' % j, True)
64
 
        return inner
65
 
 
66
 
 
67
36
class SetupAccountTestCase(BaseTestCase):
68
37
    """Test the SetupAccountPage code."""
69
38
 
82
51
        """Check the initial state of SetupAccount."""
83
52
        self.assertEqual(self.ui.ui.password_edit.receivers(
84
53
            QtCore.SIGNAL('textEdited(QString)')), 1)
85
 
        self.assertTrue(self.ui.validation_functions)
86
54
 
87
55
    def test_empty_name(self):
88
56
        """Status when the name field is empty.
107
75
        """
108
76
        self.ui.ui.password_edit.setText("")
109
77
        self.ui.ui.confirm_password_edit.setText("")
110
 
        self.ui.validate_data_on_focus_changed(4)
 
78
        common.password_default_assistance(self.ui.ui.password_assistance)
111
79
        self.ui.focus_changed(None, self.ui.ui.password_edit)
112
80
        self.assertIn(
113
81
            common.NORMAL % common.PASSWORD_LENGTH,
122
90
            unicode(self.ui.ui.password_assistance.text()),
123
91
        )
124
92
 
125
 
    def test_focus_changed_1(self):
126
 
        """Check functions execution when focus_changed() is executed."""
127
 
        self.patch(self.ui, 'validation_functions', FakeValidationDict())
128
 
        self.ui.validate_data_on_focus_changed(1)
129
 
        self.assertTrue(getattr(FakeValidationDict, "valid0"))
130
 
        self.assertFalse(getattr(FakeValidationDict, "valid1"))
131
 
        self.assertFalse(getattr(FakeValidationDict, "valid2"))
132
 
        self.assertFalse(getattr(FakeValidationDict, "valid3"))
133
 
 
134
 
    def test_focus_changed_2(self):
135
 
        """Check functions execution when focus_changed() is executed."""
136
 
        self.patch(self.ui, 'validation_functions', FakeValidationDict())
137
 
        self.ui.validate_data_on_focus_changed(2)
138
 
        self.assertTrue(getattr(FakeValidationDict, "valid0"))
139
 
        self.assertTrue(getattr(FakeValidationDict, "valid1"))
140
 
        self.assertFalse(getattr(FakeValidationDict, "valid2"))
141
 
        self.assertFalse(getattr(FakeValidationDict, "valid3"))
142
 
 
143
 
    def test_focus_changed_3(self):
144
 
        """Check functions execution when focus_changed() is executed."""
145
 
        self.patch(self.ui, 'validation_functions', FakeValidationDict())
146
 
        self.ui.validate_data_on_focus_changed(3)
147
 
        self.assertTrue(getattr(FakeValidationDict, "valid0"))
148
 
        self.assertTrue(getattr(FakeValidationDict, "valid1"))
149
 
        self.assertTrue(getattr(FakeValidationDict, "valid2"))
150
 
        self.assertFalse(getattr(FakeValidationDict, "valid3"))
151
 
 
152
 
    def test_focus_changed_4(self):
153
 
        """Check functions execution when focus_changed() is executed."""
154
 
        self.patch(self.ui, 'validation_functions', FakeValidationDict())
155
 
        self.ui.validate_data_on_focus_changed(4)
156
 
        self.assertTrue(getattr(FakeValidationDict, "valid0"))
157
 
        self.assertTrue(getattr(FakeValidationDict, "valid1"))
158
 
        self.assertTrue(getattr(FakeValidationDict, "valid2"))
159
 
        self.assertTrue(getattr(FakeValidationDict, "valid3"))
 
93
    def test_password_focus_gain(self):
 
94
        """Check functions execution when focus_changed() is executed."""
 
95
        self.ui.show()
 
96
        self.addCleanup(self.ui.hide)
 
97
        self.ui.ui.password_assistance.setVisible(False)
 
98
        self.assertFalse(self.ui.ui.password_assistance.isVisible())
 
99
        self.patch(self.ui, 'name_assistance', self._set_called)
 
100
        self.ui.focus_changed(None, self.ui.ui.password_edit)
 
101
        self.assertTrue(self.ui.ui.password_assistance.isVisible())
 
102
 
 
103
    def test_name_focus_lost(self):
 
104
        """Check functions execution when focus_changed() is executed."""
 
105
        self.patch(self.ui, 'name_assistance', self._set_called)
 
106
        self.ui.focus_changed(self.ui.ui.name_edit, None)
 
107
        self.assertTrue(self._called)
 
108
 
 
109
    def test_email_focus_lost(self):
 
110
        """Check functions execution when focus_changed() is executed."""
 
111
        self.patch(self.ui, 'email_assistance', self._set_called)
 
112
        self.ui.focus_changed(self.ui.ui.email_edit, None)
 
113
        self.assertTrue(self._called)
 
114
 
 
115
    def test_confirm_email_focus_lost(self):
 
116
        """Check functions execution when focus_changed() is executed."""
 
117
        self.patch(self.ui, 'confirm_email_assistance', self._set_called)
 
118
        self.ui.focus_changed(self.ui.ui.confirm_email_edit, None)
 
119
        self.assertTrue(self._called)
 
120
 
 
121
    def test_confirm_password_focus_lost(self):
 
122
        """Check functions execution when focus_changed() is executed."""
 
123
        self.patch(common, 'password_check_match', self._set_called)
 
124
        self.ui.focus_changed(self.ui.ui.confirm_password_edit, None)
 
125
        self.assertTrue(self._called)
160
126
 
161
127
 
162
128
class SetupAccountFakeWizardTestCase(BaseTestCase):