def testNoCreditCardSync(self): """Verify credit card info does not sync between two browsers.""" credit_card = [{ 'CREDIT_CARD_NUMBER': '6011111111111117', 'CREDIT_CARD_EXP_MONTH': '12', 'CREDIT_CARD_EXP_4_DIGIT_YEAR': '2011', 'CREDIT_CARD_NAME': 'Bob C. Smith' }] # Launch a new instance of the browser with a clean profile (Browser 2). browser2 = pyauto.ExtraBrowser( self.ChromeFlagsForSyncTestServer(**self._sync_server.ports)) account_key = 'test_sync_account' test_utils.SignInToSyncAndVerifyState(self, account_key) self.AwaitSyncCycleCompletion() # Add a credit card. self.FillAutofillProfile(credit_cards=credit_card) browser1_profile = self.GetAutofillProfile() # Verify credit card was added successfully. self.assertEqual(credit_card, browser1_profile['credit_cards'], msg='Credit card info was not added to browser 1.') # Log into the account and sync the second browser to the account. test_utils.SignInToSyncAndVerifyState(browser2, account_key) browser2.AwaitSyncCycleCompletion() # Verify browser 2 does not contain credit card info. browser2_profile = browser2.GetAutofillProfile() num_cc_profiles = len(browser2_profile['credit_cards']) self.assertEqual( 0, num_cc_profiles, msg='Browser 2 unexpectedly contains credit card info.')
def testAutofillProfileSync(self): """Verify a single Autofill profile syncs between two browsers. Integration tests between Autofill and sync feature. A single profile is added to one instance of the browser, the profile is synced to the account, a new instance of the browser is launched, the account is synced and the profile is synced to the new browser. """ profile = [{ 'NAME_FIRST': [ 'Bob', ], 'NAME_LAST': [ 'Smith', ], 'ADDRESS_HOME_ZIP': [ '94043', ], 'EMAIL_ADDRESS': [ '*****@*****.**', ], 'COMPANY_NAME': [ 'Smith, Inc', ], }] # Launch a new instance of the browser with a clean profile (Browser 2). browser2 = pyauto.ExtraBrowser( self.ChromeFlagsForSyncTestServer(**self._sync_server.ports)) account_key = 'test_sync_account' test_utils.SignInToSyncAndVerifyState(self, account_key) self.AwaitSyncCycleCompletion() # Add a single profile. self.FillAutofillProfile(profiles=profile) browser1_profile = self.GetAutofillProfile() # Log into the account and sync the second browser to the account. test_utils.SignInToSyncAndVerifyState(browser2, account_key) browser2.AwaitSyncCycleCompletion() # Verify browser 2 contains the profile. browser2_profile = browser2.GetAutofillProfile() self.assertEqual( profile, browser2_profile['profiles'], msg=('Browser 1 profile %s does not match Browser 2 profile %s' % (browser1_profile, browser2_profile)))
def testDisableAndEnableDatatypes(self): """Sign in, disable and then enable sync for multiple sync datatypes.""" new_timeout = pyauto.PyUITest.ActionTimeoutChanger( self, 2 * 60 * 1000) # 2 min. test_utils.SignInToSyncAndVerifyState(self, 'test_google_account') self.assertTrue( self.DisableSyncForDatatypes([ 'Apps', 'Autofill', 'Bookmarks', 'Extensions', 'Preferences', 'Themes' ])) self.assertFalse('Apps' in self.GetSyncInfo()['synced datatypes']) self.assertFalse('Autofill' in self.GetSyncInfo()['synced datatypes']) self.assertFalse('Bookmarks' in self.GetSyncInfo()['synced datatypes']) self.assertFalse( 'Extensions' in self.GetSyncInfo()['synced datatypes']) self.assertFalse( 'Preferences' in self.GetSyncInfo()['synced datatypes']) self.assertFalse('Themes' in self.GetSyncInfo()['synced datatypes']) self.assertTrue( self.EnableSyncForDatatypes([ 'Apps', 'Autofill', 'Bookmarks', 'Extensions', 'Preferences', 'Themes' ])) self.assertTrue(self.DisableSyncForDatatypes(['Passwords'])) self.assertTrue('Apps' in self.GetSyncInfo()['synced datatypes']) self.assertTrue('Autofill' in self.GetSyncInfo()['synced datatypes']) self.assertTrue('Bookmarks' in self.GetSyncInfo()['synced datatypes']) self.assertTrue('Extensions' in self.GetSyncInfo()['synced datatypes']) self.assertTrue( 'Preferences' in self.GetSyncInfo()['synced datatypes']) self.assertTrue('Themes' in self.GetSyncInfo()['synced datatypes']) self.assertFalse('Passwords' in self.GetSyncInfo()['synced datatypes'])
def testRestartBrowser(self): """Sign in to sync and restart the browser.""" new_timeout = pyauto.PyUITest.ActionTimeoutChanger( self, 2 * 60 * 1000) # 2 min. test_utils.SignInToSyncAndVerifyState(self, 'test_google_account') self.RestartBrowser(clear_profile=False) self.assertTrue(self.AwaitSyncRestart()) self.assertTrue(self.GetSyncInfo()['last synced'] == 'Just now') self.assertTrue(self.GetSyncInfo()['updates received'] == 0)
def testAddBookmarkAndVerifySync(self): """Verify a bookmark syncs between two browsers. Integration tests between the bookmarks and sync features. A bookmark is added to one instance of the browser, the bookmark is synced to the account, a new instance of the browser is launched, the account is synced and the bookmark info is synced on the new browser. """ # Launch a new instance of the browser with a clean profile (Browser 2) browser2 = pyauto.ExtraBrowser( self.ChromeFlagsForSyncTestServer(**self._sync_server.ports)) account_key = 'test_sync_account' test_utils.SignInToSyncAndVerifyState(self, account_key) self.AwaitSyncCycleCompletion() # Add a bookmark. bookmarks = self.GetBookmarkModel() bar_id = bookmarks.BookmarkBar()['id'] name = 'Column test' url = self.GetHttpURLForDataPath('columns.html') self.NavigateToURL(url) self.AddBookmarkURL(bar_id, 0, name, url) # Refresh the bookmarks in the first browser. bookmarks = self.GetBookmarkModel() # Log into the account and sync the browser to the account. test_utils.SignInToSyncAndVerifyState(browser2, account_key) browser2.AwaitSyncCycleCompletion() # Verify browser 2 contains the bookmark. browser2_bookmarks = browser2.GetBookmarkModel() self.assertEqual(browser2_bookmarks.NodeCount(), bookmarks.NodeCount()) bar_child = browser2_bookmarks.BookmarkBar()['children'][0] self.assertEqual(bar_child['type'], 'url') self.assertEqual(bar_child['name'], name) self.assertTrue(url in bar_child['url'])
def testNoSameIDSigninForTwoProfiles(self): """Verify two profiles cannot be signed in with same ID. Make sure that the one-click sign in infobar does not appear for two profiles trying to sign in with the same ID. This test creates a profile and connects it to a Google account. Another new profile is created and tries to login with the connected account from the first profile. This test verifies the following bug: crbug.com/122975 """ test_utils.SignInToSyncAndVerifyState(self, 'test_google_account') self._OpenSecondProfile() self._LogIntoGoogleAccount(tab_index=0, windex=1) self.assertTrue(lambda: test_utils.GetInfobarIndexByType( self, self.OC_INFOBAR_TYPE, tab_index=0, windex=1) is None)
def testSignInToSync(self): """Sign in to sync.""" new_timeout = pyauto.PyUITest.ActionTimeoutChanger(self, 60 * 1000) # 1 min. test_utils.SignInToSyncAndVerifyState(self, 'test_google_account')