| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/chromeos/extensions/device_local_account_external_polic
y_loader.h" | 5 #include "chrome/browser/chromeos/extensions/device_local_account_external_polic
y_loader.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 const char kExtensionCRXSourceDir[] = "extensions"; | 61 const char kExtensionCRXSourceDir[] = "extensions"; |
| 62 const char kExtensionCRXFile[] = "good.crx"; | 62 const char kExtensionCRXFile[] = "good.crx"; |
| 63 const char kExtensionCRXVersion[] = "1.0.0.0"; | 63 const char kExtensionCRXVersion[] = "1.0.0.0"; |
| 64 | 64 |
| 65 class MockExternalPolicyProviderVisitor | 65 class MockExternalPolicyProviderVisitor |
| 66 : public extensions::ExternalProviderInterface::VisitorInterface { | 66 : public extensions::ExternalProviderInterface::VisitorInterface { |
| 67 public: | 67 public: |
| 68 MockExternalPolicyProviderVisitor(); | 68 MockExternalPolicyProviderVisitor(); |
| 69 virtual ~MockExternalPolicyProviderVisitor(); | 69 virtual ~MockExternalPolicyProviderVisitor(); |
| 70 | 70 |
| 71 MOCK_METHOD6(OnExternalExtensionFileFound, | 71 MOCK_METHOD7(OnExternalExtensionFileFound, |
| 72 bool(const std::string&, | 72 bool(const std::string&, |
| 73 const base::Version*, | 73 const base::Version*, |
| 74 const base::FilePath&, | 74 const base::FilePath&, |
| 75 extensions::Manifest::Location, | 75 extensions::Manifest::Location, |
| 76 int, | 76 int, |
| 77 bool, |
| 77 bool)); | 78 bool)); |
| 78 MOCK_METHOD6(OnExternalExtensionUpdateUrlFound, | 79 MOCK_METHOD6(OnExternalExtensionUpdateUrlFound, |
| 79 bool(const std::string&, | 80 bool(const std::string&, |
| 80 const std::string&, | 81 const std::string&, |
| 81 const GURL&, | 82 const GURL&, |
| 82 extensions::Manifest::Location, | 83 extensions::Manifest::Location, |
| 83 int, | 84 int, |
| 84 bool)); | 85 bool)); |
| 85 MOCK_METHOD1(OnExternalProviderReady, | 86 MOCK_METHOD1(OnExternalProviderReady, |
| 86 void(const extensions::ExternalProviderInterface* provider)); | 87 void(const extensions::ExternalProviderInterface* provider)); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 VerifyAndResetVisitorCallExpectations(); | 159 VerifyAndResetVisitorCallExpectations(); |
| 159 } | 160 } |
| 160 | 161 |
| 161 void DeviceLocalAccountExternalPolicyLoaderTest::TearDown() { | 162 void DeviceLocalAccountExternalPolicyLoaderTest::TearDown() { |
| 162 TestingBrowserProcess::GetGlobal()->SetSystemRequestContext(NULL); | 163 TestingBrowserProcess::GetGlobal()->SetSystemRequestContext(NULL); |
| 163 } | 164 } |
| 164 | 165 |
| 165 void DeviceLocalAccountExternalPolicyLoaderTest:: | 166 void DeviceLocalAccountExternalPolicyLoaderTest:: |
| 166 VerifyAndResetVisitorCallExpectations() { | 167 VerifyAndResetVisitorCallExpectations() { |
| 167 Mock::VerifyAndClearExpectations(&visitor_); | 168 Mock::VerifyAndClearExpectations(&visitor_); |
| 168 EXPECT_CALL(visitor_, OnExternalExtensionFileFound(_, _, _, _, _, _)) | 169 EXPECT_CALL(visitor_, OnExternalExtensionFileFound(_, _, _, _, _, _, _)) |
| 169 .Times(0); | 170 .Times(0); |
| 170 EXPECT_CALL(visitor_, OnExternalExtensionUpdateUrlFound(_, _, _, _, _, _)) | 171 EXPECT_CALL(visitor_, OnExternalExtensionUpdateUrlFound(_, _, _, _, _, _)) |
| 171 .Times(0); | 172 .Times(0); |
| 172 EXPECT_CALL(visitor_, OnExternalProviderReady(_)) | 173 EXPECT_CALL(visitor_, OnExternalProviderReady(_)) |
| 173 .Times(0); | 174 .Times(0); |
| 174 } | 175 } |
| 175 | 176 |
| 176 void DeviceLocalAccountExternalPolicyLoaderTest::SetForceInstallListPolicy() { | 177 void DeviceLocalAccountExternalPolicyLoaderTest::SetForceInstallListPolicy() { |
| 177 scoped_ptr<base::ListValue> forcelist(new base::ListValue); | 178 scoped_ptr<base::ListValue> forcelist(new base::ListValue); |
| 178 forcelist->AppendString("invalid"); | 179 forcelist->AppendString("invalid"); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 // file, served from the cache directory. | 284 // file, served from the cache directory. |
| 284 const base::FilePath cached_crx_path = cache_dir_.Append(base::StringPrintf( | 285 const base::FilePath cached_crx_path = cache_dir_.Append(base::StringPrintf( |
| 285 "%s-%s.crx", kExtensionId, kExtensionCRXVersion)); | 286 "%s-%s.crx", kExtensionId, kExtensionCRXVersion)); |
| 286 base::RunLoop cache_run_loop; | 287 base::RunLoop cache_run_loop; |
| 287 EXPECT_CALL(visitor_, OnExternalExtensionFileFound( | 288 EXPECT_CALL(visitor_, OnExternalExtensionFileFound( |
| 288 kExtensionId, | 289 kExtensionId, |
| 289 _, | 290 _, |
| 290 cached_crx_path, | 291 cached_crx_path, |
| 291 extensions::Manifest::EXTERNAL_POLICY, | 292 extensions::Manifest::EXTERNAL_POLICY, |
| 292 _, | 293 _, |
| 294 _, |
| 293 _)); | 295 _)); |
| 294 EXPECT_CALL(visitor_, OnExternalProviderReady(provider_.get())) | 296 EXPECT_CALL(visitor_, OnExternalProviderReady(provider_.get())) |
| 295 .Times(1) | 297 .Times(1) |
| 296 .WillOnce(InvokeWithoutArgs(&cache_run_loop, &base::RunLoop::Quit)); | 298 .WillOnce(InvokeWithoutArgs(&cache_run_loop, &base::RunLoop::Quit)); |
| 297 cache_run_loop.Run(); | 299 cache_run_loop.Run(); |
| 298 VerifyAndResetVisitorCallExpectations(); | 300 VerifyAndResetVisitorCallExpectations(); |
| 299 | 301 |
| 300 // Verify that the CRX file actually exists in the cache directory and its | 302 // Verify that the CRX file actually exists in the cache directory and its |
| 301 // contents matches the file returned to the downloader. | 303 // contents matches the file returned to the downloader. |
| 302 EXPECT_TRUE(base::ContentsEqual( | 304 EXPECT_TRUE(base::ContentsEqual( |
| 303 test_dir_.Append(kExtensionCRXSourceDir).Append(kExtensionCRXFile), | 305 test_dir_.Append(kExtensionCRXSourceDir).Append(kExtensionCRXFile), |
| 304 cached_crx_path)); | 306 cached_crx_path)); |
| 305 | 307 |
| 306 // Stop the cache. Verify that the loader announces an empty extension list. | 308 // Stop the cache. Verify that the loader announces an empty extension list. |
| 307 EXPECT_CALL(visitor_, OnExternalProviderReady(provider_.get())) | 309 EXPECT_CALL(visitor_, OnExternalProviderReady(provider_.get())) |
| 308 .Times(1); | 310 .Times(1); |
| 309 base::RunLoop shutdown_run_loop; | 311 base::RunLoop shutdown_run_loop; |
| 310 loader_->StopCache(shutdown_run_loop.QuitClosure()); | 312 loader_->StopCache(shutdown_run_loop.QuitClosure()); |
| 311 VerifyAndResetVisitorCallExpectations(); | 313 VerifyAndResetVisitorCallExpectations(); |
| 312 | 314 |
| 313 // Spin the loop until the cache shutdown callback is invoked. Verify that at | 315 // Spin the loop until the cache shutdown callback is invoked. Verify that at |
| 314 // that point, no further file I/O tasks are pending. | 316 // that point, no further file I/O tasks are pending. |
| 315 shutdown_run_loop.Run(); | 317 shutdown_run_loop.Run(); |
| 316 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting()); | 318 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting()); |
| 317 } | 319 } |
| 318 | 320 |
| 319 } // namespace chromeos | 321 } // namespace chromeos |
| OLD | NEW |