~ubuntu-branches/ubuntu/saucy/mago/saucy

« back to all changes in this revision

Viewing changes to tests/test_authenticate.py

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt
  • Date: 2011-02-08 13:32:13 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20110208133213-m1og7ey0m990chg6
Tags: 0.3+bzr20-0ubuntu1
* debian/rules:
  - updated to debhelper 7
  - use dh_python2 instead of python-central
* debian/pycompat:
  - removed, no longer needed
* debian/control:
  - dropped cdbs and python-central dependencies
* bzr snapshot of the current trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2005-2010 Canonical Ltd
 
2
#
 
3
# This program is free software; you can redistribute it and/or modify
 
4
# it under the terms of the GNU General Public License as published by
 
5
# the Free Software Foundation; either version 2 of the License, or
 
6
# (at your option) any later version.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program; if not, write to the Free Software
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
16
 
 
17
"""Minimal Test
 
18
 
 
19
This is a basic test to verify that mago-ng is working as expected and can
 
20
be run with various testing framework
 
21
 
 
22
To run it with:
 
23
$ mago-ng <path_to_this_file>
 
24
 
 
25
You can code ldtp directly in there or an external module
 
26
The only mandatory element is 'launcher' (and window_name for now)
 
27
 
 
28
set setupOnce to False to launch/close the app for each test
 
29
 
 
30
The purpose of this example is to test the management of the authentication
 
31
dialog
 
32
"""
 
33
 
 
34
from mago import TestCase
 
35
import unittest
 
36
import ldtp
 
37
 
 
38
class TestAuthenticate(TestCase):
 
39
    """Test the authentication dialog
 
40
    """
 
41
    launcher = 'time-admin'
 
42
    window_name = 'dlgTimeandDateSettings'
 
43
 
 
44
    def setUp(self):
 
45
        """setUp method. Click on btn2 to popup the auth dialog """
 
46
        super(TestAuthenticate, self).setUp()
 
47
        ldtp.click(self.window_name, 'btn2')
 
48
 
 
49
    def test_password(self):
 
50
        """Test authentication with a valid password
 
51
 
 
52
        This test enters a valid password and check the authenticate returned
 
53
        True, that the dialog is not there anymore and that the calendar is
 
54
        enabled (meaning that the authentication succeeded)
 
55
        """
 
56
        if not self.testConfig.has_option('auth', 'password'):
 
57
            raise self.failureException,"Password is mandatory. Set it in the configuration file"
 
58
 
 
59
        password = self.testConfig.get('auth', 'password')
 
60
        rc = self.application.authenticate(password)
 
61
        self.assertTrue(rc)
 
62
        self.assertFalse(ldtp.guiexist('dlgAuthenticate'))
 
63
        self.assertTrue(ldtp.stateenabled(self.window_name, 'calDate'))
 
64
 
 
65
    def test_cancel(self):
 
66
        """Test the Cancel action of the authentication dialog
 
67
 
 
68
        Open the authentication dialog and cancel, then check the return status
 
69
        and that the dialog is closed
 
70
        """
 
71
        rc = self.application.authenticate(cancel = True)
 
72
 
 
73
        self.assertTrue(rc)
 
74
        self.assertFalse(ldtp.guiexist('dlgAuthenticate'))
 
75
 
 
76
 
 
77
    def test_wrongpassword(self):
 
78
        """Test authentication with a wrong password
 
79
 
 
80
        The test enters a wrong password and check that authenticate returns
 
81
        False, that the dialog is still there.
 
82
 
 
83
        Then call authenticate again with cancel and check that the return
 
84
        status is True and the dialog vanished
 
85
        """
 
86
        # Set an invalid password
 
87
        rc = self.application.authenticate(password = "this password is invalid")
 
88
        self.assertFalse(rc)
 
89
        self.assertTrue(ldtp.guiexist('dlgAuthenticate'))
 
90
 
 
91
        # Cancel the auth. dialog
 
92
        rc = self.application.authenticate(cancel = True)
 
93
        self.assertTrue(rc)
 
94
        self.assertFalse(ldtp.guiexist('dlgAuthenticate'))
 
95
 
 
96
 
 
97
if __name__ == "__main__":
 
98
    unittest.main()