| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/run_loop.h" | 5 #include "base/run_loop.h" |
| 6 #include "chrome/browser/extensions/api/instance_id/instance_id_api.h" | 6 #include "chrome/browser/extensions/api/instance_id/instance_id_api.h" |
| 7 #include "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
| 8 #include "chrome/browser/extensions/extension_gcm_app_handler.h" | 8 #include "chrome/browser/extensions/extension_gcm_app_handler.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h" | 10 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h" |
| 11 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" | 11 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" |
| 12 #include "chrome/browser/services/gcm/instance_id/instance_id_profile_service_fa
ctory.h" | 12 #include "chrome/browser/services/gcm/instance_id/instance_id_profile_service_fa
ctory.h" |
| 13 #include "chrome/common/chrome_switches.h" | 13 #include "chrome/common/extensions/features/feature_channel.h" |
| 14 #include "chrome/test/base/ui_test_utils.h" | 14 #include "chrome/test/base/ui_test_utils.h" |
| 15 #include "components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h" | 15 #include "components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h" |
| 16 #include "extensions/test/result_catcher.h" | 16 #include "extensions/test/result_catcher.h" |
| 17 | 17 |
| 18 using extensions::ResultCatcher; | 18 using extensions::ResultCatcher; |
| 19 | 19 |
| 20 namespace extensions { | 20 namespace extensions { |
| 21 | 21 |
| 22 namespace { | 22 namespace { |
| 23 | 23 |
| 24 KeyedService* BuildFakeGCMProfileService(content::BrowserContext* context) { | 24 KeyedService* BuildFakeGCMProfileService(content::BrowserContext* context) { |
| 25 gcm::FakeGCMProfileService* service = | 25 gcm::FakeGCMProfileService* service = |
| 26 new gcm::FakeGCMProfileService(Profile::FromBrowserContext(context)); | 26 new gcm::FakeGCMProfileService(Profile::FromBrowserContext(context)); |
| 27 service->SetDriverForTesting(new instance_id::FakeGCMDriverForInstanceID()); | 27 service->SetDriverForTesting(new instance_id::FakeGCMDriverForInstanceID()); |
| 28 return service; | 28 return service; |
| 29 } | 29 } |
| 30 | 30 |
| 31 } // namespace | 31 } // namespace |
| 32 | 32 |
| 33 class InstanceIDApiTest : public ExtensionApiTest { | 33 class InstanceIDApiTest : public ExtensionApiTest { |
| 34 public: | 34 public: |
| 35 InstanceIDApiTest() {} | 35 InstanceIDApiTest() {} |
| 36 | 36 |
| 37 protected: | 37 protected: |
| 38 void SetUpOnMainThread() override; | 38 void SetUpOnMainThread() override; |
| 39 void SetUpCommandLine(base::CommandLine* command_line) override; | |
| 40 | 39 |
| 41 private: | 40 private: |
| 42 DISALLOW_COPY_AND_ASSIGN(InstanceIDApiTest); | 41 DISALLOW_COPY_AND_ASSIGN(InstanceIDApiTest); |
| 43 }; | 42 }; |
| 44 | 43 |
| 45 void InstanceIDApiTest::SetUpOnMainThread() { | 44 void InstanceIDApiTest::SetUpOnMainThread() { |
| 46 gcm::GCMProfileServiceFactory::GetInstance()->SetTestingFactory( | 45 gcm::GCMProfileServiceFactory::GetInstance()->SetTestingFactory( |
| 47 browser()->profile(), &BuildFakeGCMProfileService); | 46 browser()->profile(), &BuildFakeGCMProfileService); |
| 48 | 47 |
| 49 ExtensionApiTest::SetUpOnMainThread(); | 48 ExtensionApiTest::SetUpOnMainThread(); |
| 50 } | 49 } |
| 51 | 50 |
| 52 void InstanceIDApiTest::SetUpCommandLine(base::CommandLine* command_line) { | |
| 53 ExtensionApiTest::SetUpCommandLine(command_line); | |
| 54 | |
| 55 // Makes sure InstanceID is enabled for testing. | |
| 56 command_line->AppendSwitchASCII( | |
| 57 switches::kForceFieldTrials, "InstanceID/Enabled/"); | |
| 58 } | |
| 59 | |
| 60 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetID) { | 51 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetID) { |
| 52 extensions::ScopedCurrentChannel current_channel( |
| 53 chrome::VersionInfo::CHANNEL_DEV); |
| 61 ASSERT_TRUE(RunExtensionTest("instance_id/get_id")); | 54 ASSERT_TRUE(RunExtensionTest("instance_id/get_id")); |
| 62 } | 55 } |
| 63 | 56 |
| 64 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetCreationTime) { | 57 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetCreationTime) { |
| 58 extensions::ScopedCurrentChannel current_channel( |
| 59 chrome::VersionInfo::CHANNEL_DEV); |
| 65 ASSERT_TRUE(RunExtensionTest("instance_id/get_creation_time")); | 60 ASSERT_TRUE(RunExtensionTest("instance_id/get_creation_time")); |
| 66 } | 61 } |
| 67 | 62 |
| 68 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, DeleteID) { | 63 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, DeleteID) { |
| 64 extensions::ScopedCurrentChannel current_channel( |
| 65 chrome::VersionInfo::CHANNEL_DEV); |
| 69 ASSERT_TRUE(RunExtensionTest("instance_id/delete_id")); | 66 ASSERT_TRUE(RunExtensionTest("instance_id/delete_id")); |
| 70 } | 67 } |
| 71 | 68 |
| 72 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetToken) { | 69 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, GetToken) { |
| 70 extensions::ScopedCurrentChannel current_channel( |
| 71 chrome::VersionInfo::CHANNEL_DEV); |
| 73 ASSERT_TRUE(RunExtensionTest("instance_id/get_token")); | 72 ASSERT_TRUE(RunExtensionTest("instance_id/get_token")); |
| 74 } | 73 } |
| 75 | 74 |
| 76 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, DeleteToken) { | 75 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, DeleteToken) { |
| 76 extensions::ScopedCurrentChannel current_channel( |
| 77 chrome::VersionInfo::CHANNEL_DEV); |
| 77 ASSERT_TRUE(RunExtensionTest("instance_id/delete_token")); | 78 ASSERT_TRUE(RunExtensionTest("instance_id/delete_token")); |
| 78 } | 79 } |
| 79 | 80 |
| 80 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, Incognito) { | 81 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, Incognito) { |
| 82 extensions::ScopedCurrentChannel current_channel( |
| 83 chrome::VersionInfo::CHANNEL_DEV); |
| 84 |
| 81 ResultCatcher catcher; | 85 ResultCatcher catcher; |
| 82 catcher.RestrictToBrowserContext(profile()); | 86 catcher.RestrictToBrowserContext(profile()); |
| 83 ResultCatcher incognito_catcher; | 87 ResultCatcher incognito_catcher; |
| 84 incognito_catcher.RestrictToBrowserContext( | 88 incognito_catcher.RestrictToBrowserContext( |
| 85 profile()->GetOffTheRecordProfile()); | 89 profile()->GetOffTheRecordProfile()); |
| 86 | 90 |
| 87 ASSERT_TRUE(RunExtensionTestIncognito("instance_id/incognito")); | 91 ASSERT_TRUE(RunExtensionTestIncognito("instance_id/incognito")); |
| 88 | 92 |
| 89 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 93 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 90 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message(); | 94 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message(); |
| 91 } | 95 } |
| 92 | 96 |
| 97 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, BetaChannel) { |
| 98 extensions::ScopedCurrentChannel current_channel( |
| 99 chrome::VersionInfo::CHANNEL_BETA); |
| 100 ASSERT_TRUE(RunExtensionTest("instance_id/channel")); |
| 101 } |
| 102 |
| 103 IN_PROC_BROWSER_TEST_F(InstanceIDApiTest, StableChannel) { |
| 104 extensions::ScopedCurrentChannel current_channel( |
| 105 chrome::VersionInfo::CHANNEL_STABLE); |
| 106 ASSERT_TRUE(RunExtensionTest("instance_id/channel")); |
| 107 } |
| 108 |
| 93 } // namespace extensions | 109 } // namespace extensions |
| OLD | NEW |