Chromium Code Reviews| Index: components/gcm_driver/instance_id/instance_id_driver_unittest.cc |
| diff --git a/components/gcm_driver/instance_id/instance_id_driver_unittest.cc b/components/gcm_driver/instance_id/instance_id_driver_unittest.cc |
| index 41305b524d07f76601e45f35d7b082be06f1fd58..12acb0b3eb1278dd2a88e89a893d9084b06e9104 100644 |
| --- a/components/gcm_driver/instance_id/instance_id_driver_unittest.cc |
| +++ b/components/gcm_driver/instance_id/instance_id_driver_unittest.cc |
| @@ -19,6 +19,10 @@ namespace { |
| const char kTestAppID1[] = "TestApp1"; |
| const char kTestAppID2[] = "TestApp2"; |
| +const char kAuthorizedEntity1[] = "Sender 1"; |
| +const char kAuthorizedEntity2[] = "Sender 2"; |
| +const char kScope1[] = "GCM1"; |
| +const char kScope2[] = "FooBar"; |
| bool VerifyInstanceID(const std::string& str) { |
| // Checks the length. |
| @@ -53,6 +57,15 @@ class InstanceIDDriverTest : public testing::Test { |
| std::string GetID(InstanceID* instance_id); |
| base::Time GetCreationTime(InstanceID* instance_id); |
| InstanceID::Result DeleteID(InstanceID* instance_id); |
| + std::string GetToken( |
| + InstanceID* instance_id, |
| + const std::string& authorized_entity, |
| + const std::string& scope, |
| + const std::map<std::string, std::string>& options); |
| + InstanceID::Result DeleteToken( |
| + InstanceID* instance_id, |
| + const std::string& authorized_entity, |
| + const std::string& scope); |
| InstanceIDDriver* driver() const { return driver_.get(); } |
| @@ -60,6 +73,8 @@ class InstanceIDDriverTest : public testing::Test { |
| void GetIDCompleted(const std::string& id); |
| void GetCreationTimeCompleted(const base::Time& creation_time); |
| void DeleteIDCompleted(InstanceID::Result result); |
| + void GetTokenCompleted(const std::string& token, InstanceID::Result result); |
| + void DeleteTokenCompleted(InstanceID::Result result); |
| base::MessageLoopForUI message_loop_; |
| scoped_ptr<FakeGCMDriverForInstanceID> gcm_driver_; |
| @@ -67,6 +82,7 @@ class InstanceIDDriverTest : public testing::Test { |
| std::string id_; |
| base::Time creation_time_; |
| + std::string token_; |
| InstanceID::Result result_; |
| bool async_operation_completed_; |
| @@ -129,6 +145,39 @@ InstanceID::Result InstanceIDDriverTest::DeleteID(InstanceID* instance_id) { |
| return result_; |
| } |
| +std::string InstanceIDDriverTest::GetToken( |
| + InstanceID* instance_id, |
| + const std::string& authorized_entity, |
| + const std::string& scope, |
| + const std::map<std::string, std::string>& options) { |
| + async_operation_completed_ = false; |
| + token_.clear(); |
| + result_ = InstanceID::UNKNOWN_ERROR;; |
| + instance_id->GetToken( |
| + authorized_entity, |
| + scope, |
| + options, |
| + base::Bind(&InstanceIDDriverTest::GetTokenCompleted, |
| + base::Unretained(this))); |
| + WaitForAsyncOperation(); |
| + return token_; |
| +} |
| + |
| +InstanceID::Result InstanceIDDriverTest::DeleteToken( |
| + InstanceID* instance_id, |
| + const std::string& authorized_entity, |
| + const std::string& scope) { |
| + async_operation_completed_ = false; |
| + result_ = InstanceID::UNKNOWN_ERROR;; |
| + instance_id->DeleteToken( |
| + authorized_entity, |
| + scope, |
| + base::Bind(&InstanceIDDriverTest::DeleteTokenCompleted, |
| + base::Unretained(this))); |
| + WaitForAsyncOperation(); |
| + return result_; |
| +} |
| + |
| void InstanceIDDriverTest::GetIDCompleted(const std::string& id) { |
| async_operation_completed_ = true; |
| id_ = id; |
| @@ -151,6 +200,22 @@ void InstanceIDDriverTest::DeleteIDCompleted(InstanceID::Result result) { |
| async_operation_completed_callback_.Run(); |
| } |
| +void InstanceIDDriverTest::GetTokenCompleted( |
| + const std::string& token, InstanceID::Result result){ |
| + async_operation_completed_ = true; |
| + token_ = token; |
| + result_ = result; |
| + if (!async_operation_completed_callback_.is_null()) |
| + async_operation_completed_callback_.Run(); |
| +} |
| + |
| +void InstanceIDDriverTest::DeleteTokenCompleted(InstanceID::Result result) { |
| + async_operation_completed_ = true; |
| + result_ = result; |
| + if (!async_operation_completed_callback_.is_null()) |
| + async_operation_completed_callback_.Run(); |
| +} |
| + |
| TEST_F(InstanceIDDriverTest, NewID) { |
| // Creation time should not be set when the ID is not created. |
| InstanceID* instance_id1 = driver()->GetInstanceID(kTestAppID1); |
| @@ -220,4 +285,44 @@ TEST_F(InstanceIDDriverTest, DeleteID) { |
| EXPECT_FALSE(GetCreationTime(instance_id).is_null()); |
| } |
| +TEST_F(InstanceIDDriverTest, GetToken) { |
| + InstanceID* instance_id = driver()->GetInstanceID(kTestAppID1); |
| + std::map<std::string, std::string> options; |
| + std::string token1 = |
| + GetToken(instance_id, kAuthorizedEntity1, kScope1, options); |
| + EXPECT_FALSE(token1.empty()); |
| + |
| + // Same token is returned for same authorized entity and scope. |
| + EXPECT_EQ(token1, |
| + GetToken(instance_id, kAuthorizedEntity1, kScope1, options)); |
| + |
| + // Different token is returned for different authorized entity or scope. |
| + std::string token2 = |
| + GetToken(instance_id, kAuthorizedEntity1, kScope2, options); |
| + EXPECT_FALSE(token2.empty()); |
| + EXPECT_NE(token1, token2); |
| + |
| + std::string token3 = |
| + GetToken(instance_id, kAuthorizedEntity2, kScope1, options); |
| + EXPECT_FALSE(token3.empty()); |
| + EXPECT_NE(token1, token3); |
| + EXPECT_NE(token2, token3); |
| +} |
| + |
| +TEST_F(InstanceIDDriverTest, DeleteToken) { |
| + InstanceID* instance_id = driver()->GetInstanceID(kTestAppID1); |
| + std::map<std::string, std::string> options; |
| + std::string token1 = |
| + GetToken(instance_id, kAuthorizedEntity1, kScope1, options); |
| + EXPECT_FALSE(token1.empty()); |
| + |
|
fgorski
2015/05/13 18:32:39
add second token and verify that it is still there
jianli
2015/05/13 22:42:56
Done.
|
| + // Same token is returned for same authorized entity and scope after deletion. |
| + EXPECT_EQ(InstanceID::SUCCESS, |
| + DeleteToken(instance_id, kAuthorizedEntity1, kScope1)); |
| + std::string token2 = |
| + GetToken(instance_id, kAuthorizedEntity1, kScope2, options); |
| + EXPECT_FALSE(token2.empty()); |
| + EXPECT_NE(token1, token2); |
| +} |
| + |
| } // instance_id |