From a62d73a3760bf2227550df2f8673e2b77497a908 Mon Sep 17 00:00:00 2001
From: Leah Klearman <lklrmn@gmail.com>
Date: Fri, 31 Aug 2012 16:18:24 -0700
Subject: [PATCH] both 123done and bidpom tests pass now

123done/tests/test_change_password.py .
123done/tests/test_logout.py .
123done/tests/test_new_user.py .
123done/tests/test_sign_in.py .
= 4 passed in 318.50 seconds =
browserid/tests/check_add_email.py .
browserid/tests/check_change_password.py .
browserid/tests/check_reset_password.py .
browserid/tests/check_sign_in.py ......
= 9 passed in 863.19 seconds =
---
 automation-tests/123done/pages/home.py             |  4 ++++
 .../123done/tests/test_change_password.py          |  2 +-
 automation-tests/123done/tests/test_new_user.py    |  3 +--
 .../browserid/pages/complete_registration.py       |  4 ++--
 automation-tests/browserid/tests/base.py           |  6 ++----
 .../browserid/tests/check_add_email.py             | 14 +++++++-------
 .../browserid/tests/check_reset_password.py        |  5 +----
 7 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/automation-tests/123done/pages/home.py b/automation-tests/123done/pages/home.py
index 59ff30b71..346775203 100644
--- a/automation-tests/123done/pages/home.py
+++ b/automation-tests/123done/pages/home.py
@@ -61,6 +61,10 @@ class HomePage(Page):
 
     @property
     def logged_in_user_email(self):
+        WebDriverWait(self.selenium, self.timeout).until(
+            lambda s: self.is_element_visible(*self._logged_in_user_email_locator)and not \
+                      self.is_element_visible(*self._loading_spinner_locator),
+            "Timeout waiting for user's email to appear.")
         return self.selenium.find_element(*self._logged_in_user_email_locator).text
 
     def wait_for_user_login(self):
diff --git a/automation-tests/123done/tests/test_change_password.py b/automation-tests/123done/tests/test_change_password.py
index 344b67cab..2c6f01525 100644
--- a/automation-tests/123done/tests/test_change_password.py
+++ b/automation-tests/123done/tests/test_change_password.py
@@ -28,7 +28,7 @@ class TestChangePassword:
 
         # Load the BrowserID link from the email in the browser
         from browserid.pages.complete_registration import CompleteRegistration
-        CompleteRegistration(mozwebqa.selenium, email.verify_user_link)
+        CompleteRegistration(mozwebqa.selenium, mozwebqa.timeout, email.verify_user_link)
 
         mozwebqa.selenium.get(mozwebqa.server_base_url)
         from browserid.pages.account_manager import AccountManager
diff --git a/automation-tests/123done/tests/test_new_user.py b/automation-tests/123done/tests/test_new_user.py
index 832305c51..96abd3b55 100644
--- a/automation-tests/123done/tests/test_new_user.py
+++ b/automation-tests/123done/tests/test_new_user.py
@@ -28,7 +28,6 @@ class TestNewAccount:
 
         # Load the BrowserID link from the email in the browser
         from browserid.pages.complete_registration import CompleteRegistration
-        complete_registration = CompleteRegistration(mozwebqa.selenium, email.verify_user_link)
+        complete_registration = CompleteRegistration(mozwebqa.selenium, mozwebqa.timeout, email.verify_user_link)
 
-        home_pg.go_to_home_page()
         Assert.equal(home_pg.logged_in_user_email, user['email'])
diff --git a/automation-tests/browserid/pages/complete_registration.py b/automation-tests/browserid/pages/complete_registration.py
index a08bec829..acd9723b5 100644
--- a/automation-tests/browserid/pages/complete_registration.py
+++ b/automation-tests/browserid/pages/complete_registration.py
@@ -18,14 +18,14 @@ class CompleteRegistration(Base):
     _finish_locator = (By.CSS_SELECTOR, 'div.submit > button')
     _thank_you_locator = (By.ID, 'congrats')
 
-    def __init__(self, mozwebqa, url, expect='redirect'):
+    def __init__(self, selenium, timeout, url, expect='redirect'):
         """
         class init method
         :Args:
         - url - the confirmation url from the email
         - expect - redirect/success/reset/verify (default redirect)
         """
-        Base.__init__(self, mozwebqa)
+        Base.__init__(self, selenium, timeout)
         print "the url" + url
         self.selenium.get(url)
 
diff --git a/automation-tests/browserid/tests/base.py b/automation-tests/browserid/tests/base.py
index 8adf6357c..e7408f625 100644
--- a/automation-tests/browserid/tests/base.py
+++ b/automation-tests/browserid/tests/base.py
@@ -40,10 +40,8 @@ class BaseTest(object):
         verify_url = re.search(BrowserID.VERIFY_URL_REGEX,
                                mail[0]['text']).group(0)
 
-        selenium.get(verify_url)
         from .. pages.complete_registration import CompleteRegistration
         complete_registration = CompleteRegistration(selenium,
-                                                     timeout,
-                                                     expect='success')
-        assert 'Thank you' in complete_registration.thank_you
+                                                     timeout, verify_url,
+                                                     expect='redirect')
         return user
diff --git a/automation-tests/browserid/tests/check_add_email.py b/automation-tests/browserid/tests/check_add_email.py
index 79e1e00f9..b52bde2ee 100644
--- a/automation-tests/browserid/tests/check_add_email.py
+++ b/automation-tests/browserid/tests/check_add_email.py
@@ -21,12 +21,15 @@ class TestSignIn(BaseTest):
         user = self.create_verified_user(mozwebqa.selenium, mozwebqa.timeout)
         user.additional_emails.append('%s_1@restmail.net' % user.id)
 
+        # log out
         mozwebqa.selenium.get('%s/' % mozwebqa.base_url)
         self.log_out(mozwebqa.selenium, mozwebqa.timeout)
-        mozwebqa.selenium.find_element_by_css_selector('#loggedout button').click()
 
+        # initiate add email
+        mozwebqa.selenium.find_element_by_css_selector('#loggedout button').click()
         from .. pages.sign_in import SignIn
         signin = SignIn(mozwebqa.selenium, mozwebqa.timeout, expect='returning')
+
         signin.click_add_another_email_address()
         signin.new_email = user.additional_emails[0]
         signin.click_add_new_email()
@@ -39,17 +42,14 @@ class TestSignIn(BaseTest):
         confirm_url = re.search(BrowserID.CONFIRM_URL_REGEX,
             mail[0]['text']).group(0)
 
-        mozwebqa.selenium.get(confirm_url)
         from .. pages.complete_registration import CompleteRegistration
         complete_registration = CompleteRegistration(mozwebqa.selenium,
-            mozwebqa.timeout,
-            expect='success')
-        assert 'Your address has been verified' in complete_registration.thank_you
+            mozwebqa.timeout, confirm_url, expect='redirect')
 
-        mozwebqa.selenium.get('%s/' % mozwebqa.base_url)
         self.log_out(mozwebqa.selenium, mozwebqa.timeout)
-        mozwebqa.selenium.find_element_by_css_selector('#loggedout button').click()
 
+        mozwebqa.selenium.find_element_by_css_selector('#loggedout button').click()
         signin = SignIn(mozwebqa.selenium, mozwebqa.timeout, expect='returning')
+
         assert user.additional_emails[0] in signin.emails
         assert signin.selected_email == user.additional_emails[0]
diff --git a/automation-tests/browserid/tests/check_reset_password.py b/automation-tests/browserid/tests/check_reset_password.py
index 6dced8357..78fe844a3 100644
--- a/automation-tests/browserid/tests/check_reset_password.py
+++ b/automation-tests/browserid/tests/check_reset_password.py
@@ -44,10 +44,7 @@ class TestSignIn(BaseTest):
 
         reset_url = re.search(BrowserID.RESET_URL_REGEX,
             mail[1]['text']).group(0)
-        mozwebqa.selenium.get(reset_url)
 
         from .. pages.complete_registration import CompleteRegistration
         complete_registration = CompleteRegistration(mozwebqa.selenium,
-            mozwebqa.timeout,
-            expect='success')
-        assert 'Your address has been verified!' in complete_registration.thank_you
+            mozwebqa.timeout, reset_url, expect='redirect')
-- 
GitLab