~launchpad-pqm/launchpad/devel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
==========
Jabber IDs
==========


In their Launchpad profile, users can register their Jabber IDs.

Adding and editing an ID
------------------------

To register a Jabber ID with his account, the user visits his
profile page and uses the 'Update Jabber IDs' link.

    >>> user_browser.open('http://launchpad.dev/~no-priv')
    >>> user_browser.getLink('Update Jabber IDs').click()
    >>> print user_browser.title
    No Privileges Person's Jabber IDs...

The user enters the Jabber ID in the text field and clicks on the
'Save Changes' button.

    >>> user_browser.getControl(name='field.jabberid').value = (
    ...     'jeff@jabber.org')
    >>> user_browser.getControl('Save Changes').click()

In this case, the user tried registering a jabber ID that was already
registered by someone else. Since only one person can use a Jabber ID,
an error is displayed and the user can enter another one:

    >>> def show_errors(browser):
    ...     for error in find_tags_by_class(browser.contents, 'error'):
    ...         print extract_text(error)
    >>> show_errors(user_browser)
    There is 1 error.
    New Jabber user ID:
    The Jabber ID jeff@jabber.org is already registered by Jeff Waugh.

However, if the user enters a Jabber ID which isn't already registered,
it will be associated with his account.

    >>> user_browser.getControl(name='field.jabberid').value = (
    ...     'no-priv@jabber.org')
    >>> user_browser.getControl('Save Changes').click()
    >>> show_errors(user_browser)

    >>> def show_jabberids(browser):
    ...     tags = find_tag_by_id(browser.contents, 'jabber-ids')
    ...     for dd in tags.findAll('dd'):
    ...         print extract_text(dd)

    >>> show_jabberids(user_browser)
    no-priv@jabber.org

Removing an ID
--------------

To remove an existing Jabber ID, the user simply checks the 'Remove'
checkbox besides the ID:
    >>> user_browser.getLink('Update Jabber IDs').click()
    >>> user_browser.getControl('Remove', index=0).click()
    >>> user_browser.getControl('Save Changes').click()

    >>> show_jabberids(user_browser)
    No Jabber IDs registered.