diff options
Diffstat (limited to 'chrome/browser/extensions/api/identity/identity_apitest.cc')
-rw-r--r-- | chrome/browser/extensions/api/identity/identity_apitest.cc | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/chrome/browser/extensions/api/identity/identity_apitest.cc b/chrome/browser/extensions/api/identity/identity_apitest.cc index 7cc798f..737b330 100644 --- a/chrome/browser/extensions/api/identity/identity_apitest.cc +++ b/chrome/browser/extensions/api/identity/identity_apitest.cc @@ -595,10 +595,29 @@ class IdentityGetProfileUserInfoFunctionTest : public ExtensionBrowserTest { utils::RunFunctionAndReturnSingleResult(func.get(), "[]", browser())); return api::identity::ProfileUserInfo::FromValue(*value.get()); } + + scoped_ptr<api::identity::ProfileUserInfo> RunGetProfileUserInfoWithEmail() { + scoped_refptr<IdentityGetProfileUserInfoFunction> func( + new IdentityGetProfileUserInfoFunction); + func->set_extension(CreateExtensionWithEmailPermission()); + scoped_ptr<base::Value> value( + utils::RunFunctionAndReturnSingleResult(func.get(), "[]", browser())); + return api::identity::ProfileUserInfo::FromValue(*value.get()); + } + + private: + scoped_refptr<Extension> CreateExtensionWithEmailPermission() { + scoped_ptr<base::DictionaryValue> test_extension_value( + utils::ParseDictionary( + "{\"name\": \"Test\", \"version\": \"1.0\", " + "\"permissions\": [\"identity.email\"]}")); + return utils::CreateExtension(test_extension_value.get()); + } }; IN_PROC_BROWSER_TEST_F(IdentityGetProfileUserInfoFunctionTest, NotSignedIn) { - scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo(); + scoped_ptr<api::identity::ProfileUserInfo> info = + RunGetProfileUserInfoWithEmail(); EXPECT_TRUE(info->email.empty()); EXPECT_TRUE(info->id.empty()); } @@ -609,11 +628,31 @@ IN_PROC_BROWSER_TEST_F(IdentityGetProfileUserInfoFunctionTest, SignedIn) { profile()->GetPrefs() ->SetString(prefs::kGoogleServicesUserAccountId, "12345"); - scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo(); + scoped_ptr<api::identity::ProfileUserInfo> info = + RunGetProfileUserInfoWithEmail(); EXPECT_EQ("president@example.com", info->email); EXPECT_EQ("12345", info->id); } +IN_PROC_BROWSER_TEST_F(IdentityGetProfileUserInfoFunctionTest, + NotSignedInNoEmail) { + scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo(); + EXPECT_TRUE(info->email.empty()); + EXPECT_TRUE(info->id.empty()); +} + +IN_PROC_BROWSER_TEST_F(IdentityGetProfileUserInfoFunctionTest, + SignedInNoEmail) { + profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername, + "president@example.com"); + profile()->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, + "12345"); + + scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo(); + EXPECT_TRUE(info->email.empty()); + EXPECT_EQ("12345", info->id); +} + class GetAuthTokenFunctionTest : public AsyncExtensionBrowserTest { public: virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |