Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1092)

Unified Diff: components/update_client/test/update_checker_unittest.cc

Issue 1102103002: Move the unit tests files side-by-side with the corresponding .cc files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/update_client/test/update_checker_unittest.cc
diff --git a/components/update_client/test/update_checker_unittest.cc b/components/update_client/test/update_checker_unittest.cc
deleted file mode 100644
index ce6922a4832ddc7b5f0b095009a41d64d98a09bd..0000000000000000000000000000000000000000
--- a/components/update_client/test/update_checker_unittest.cc
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/compiler_specific.h"
-#include "base/files/file_util.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "base/path_service.h"
-#include "base/run_loop.h"
-#include "base/version.h"
-#include "components/update_client/crx_update_item.h"
-#include "components/update_client/test/test_configurator.h"
-#include "components/update_client/test/url_request_post_interceptor.h"
-#include "components/update_client/update_checker.h"
-#include "net/url_request/url_request_test_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "url/gurl.h"
-
-using std::string;
-
-namespace update_client {
-
-namespace {
-
-base::FilePath test_file(const char* file) {
- base::FilePath path;
- PathService::Get(base::DIR_SOURCE_ROOT, &path);
- return path.AppendASCII("components")
- .AppendASCII("test")
- .AppendASCII("data")
- .AppendASCII("update_client")
- .AppendASCII(file);
-}
-
-} // namespace
-
-class UpdateCheckerTest : public testing::Test {
- public:
- UpdateCheckerTest();
- ~UpdateCheckerTest() override;
-
- // Overrides from testing::Test.
- void SetUp() override;
- void TearDown() override;
-
- void UpdateCheckComplete(const GURL& original_url,
- int error,
- const std::string& error_message,
- const UpdateResponse::Results& results);
-
- protected:
- void Quit();
- void RunThreads();
- void RunThreadsUntilIdle();
-
- CrxUpdateItem BuildCrxUpdateItem();
-
- scoped_refptr<TestConfigurator> config_;
-
- scoped_ptr<UpdateChecker> update_checker_;
-
- scoped_ptr<InterceptorFactory> interceptor_factory_;
- URLRequestPostInterceptor* post_interceptor_; // Owned by the factory.
-
- GURL original_url_;
- int error_;
- std::string error_message_;
- UpdateResponse::Results results_;
-
- private:
- base::MessageLoopForIO loop_;
- base::Closure quit_closure_;
-
- DISALLOW_COPY_AND_ASSIGN(UpdateCheckerTest);
-};
-
-UpdateCheckerTest::UpdateCheckerTest() : post_interceptor_(NULL), error_(0) {
-}
-
-UpdateCheckerTest::~UpdateCheckerTest() {
-}
-
-void UpdateCheckerTest::SetUp() {
- config_ = new TestConfigurator(base::MessageLoopProxy::current(),
- base::MessageLoopProxy::current());
- interceptor_factory_.reset(
- new InterceptorFactory(base::MessageLoopProxy::current()));
- post_interceptor_ = interceptor_factory_->CreateInterceptor();
- EXPECT_TRUE(post_interceptor_);
-
- update_checker_.reset();
-
- error_ = 0;
- error_message_.clear();
- results_ = UpdateResponse::Results();
-}
-
-void UpdateCheckerTest::TearDown() {
- update_checker_.reset();
-
- post_interceptor_ = NULL;
- interceptor_factory_.reset();
-
- config_ = nullptr;
-
- // The PostInterceptor requires the message loop to run to destruct correctly.
- // TODO(sorin): This is fragile and should be fixed.
- RunThreadsUntilIdle();
-}
-
-void UpdateCheckerTest::RunThreads() {
- base::RunLoop runloop;
- quit_closure_ = runloop.QuitClosure();
- runloop.Run();
-
- // Since some tests need to drain currently enqueued tasks such as network
- // intercepts on the IO thread, run the threads until they are
- // idle. The component updater service won't loop again until the loop count
- // is set and the service is started.
- RunThreadsUntilIdle();
-}
-
-void UpdateCheckerTest::RunThreadsUntilIdle() {
- base::RunLoop().RunUntilIdle();
-}
-
-void UpdateCheckerTest::Quit() {
- if (!quit_closure_.is_null())
- quit_closure_.Run();
-}
-
-void UpdateCheckerTest::UpdateCheckComplete(
- const GURL& original_url,
- int error,
- const std::string& error_message,
- const UpdateResponse::Results& results) {
- original_url_ = original_url;
- error_ = error;
- error_message_ = error_message;
- results_ = results;
- Quit();
-}
-
-CrxUpdateItem UpdateCheckerTest::BuildCrxUpdateItem() {
- CrxComponent crx_component;
- crx_component.name = "test_jebg";
- crx_component.pk_hash.assign(jebg_hash, jebg_hash + arraysize(jebg_hash));
- crx_component.installer = NULL;
- crx_component.version = base::Version("0.9");
- crx_component.fingerprint = "fp1";
-
- CrxUpdateItem crx_update_item;
- crx_update_item.state = CrxUpdateItem::State::kNew;
- crx_update_item.id = "jebgalgnebhfojomionfpkfelancnnkf";
- crx_update_item.component = crx_component;
-
- return crx_update_item;
-}
-
-TEST_F(UpdateCheckerTest, UpdateCheckSuccess) {
- EXPECT_TRUE(post_interceptor_->ExpectRequest(
- new PartialMatch("updatecheck"), test_file("updatecheck_reply_1.xml")));
-
- update_checker_ = UpdateChecker::Create(*config_).Pass();
-
- CrxUpdateItem item(BuildCrxUpdateItem());
- std::vector<CrxUpdateItem*> items_to_check;
- items_to_check.push_back(&item);
-
- update_checker_->CheckForUpdates(
- items_to_check, "extra=\"params\"",
- base::Bind(&UpdateCheckerTest::UpdateCheckComplete,
- base::Unretained(this)));
-
- RunThreads();
-
- EXPECT_EQ(1, post_interceptor_->GetHitCount())
- << post_interceptor_->GetRequestsAsString();
- EXPECT_EQ(1, post_interceptor_->GetCount())
- << post_interceptor_->GetRequestsAsString();
-
- // Sanity check the request.
- EXPECT_NE(string::npos, post_interceptor_->GetRequests()[0].find(
- "request protocol=\"3.0\" extra=\"params\""));
- EXPECT_NE(
- string::npos,
- post_interceptor_->GetRequests()[0].find(
- "app appid=\"jebgalgnebhfojomionfpkfelancnnkf\" version=\"0.9\">"
- "<updatecheck /><packages><package fp=\"fp1\"/></packages></app>"));
-
- EXPECT_NE(string::npos,
- post_interceptor_->GetRequests()[0].find("<hw physmemory="));
-
- // Sanity check the arguments of the callback after parsing.
- EXPECT_EQ(config_->UpdateUrl().front(), original_url_);
- EXPECT_EQ(0, error_);
- EXPECT_TRUE(error_message_.empty());
- EXPECT_EQ(1ul, results_.list.size());
- EXPECT_STREQ("jebgalgnebhfojomionfpkfelancnnkf",
- results_.list[0].extension_id.c_str());
- EXPECT_STREQ("1.0", results_.list[0].manifest.version.c_str());
-}
-
-// Simulates a 403 server response error.
-TEST_F(UpdateCheckerTest, UpdateCheckError) {
- EXPECT_TRUE(
- post_interceptor_->ExpectRequest(new PartialMatch("updatecheck"), 403));
-
- update_checker_ = UpdateChecker::Create(*config_).Pass();
-
- CrxUpdateItem item(BuildCrxUpdateItem());
- std::vector<CrxUpdateItem*> items_to_check;
- items_to_check.push_back(&item);
-
- update_checker_->CheckForUpdates(
- items_to_check, "", base::Bind(&UpdateCheckerTest::UpdateCheckComplete,
- base::Unretained(this)));
-
- RunThreads();
-
- EXPECT_EQ(1, post_interceptor_->GetHitCount())
- << post_interceptor_->GetRequestsAsString();
- EXPECT_EQ(1, post_interceptor_->GetCount())
- << post_interceptor_->GetRequestsAsString();
-
- EXPECT_EQ(config_->UpdateUrl().front(), original_url_);
- EXPECT_EQ(403, error_);
- EXPECT_STREQ("network error", error_message_.c_str());
- EXPECT_EQ(0ul, results_.list.size());
-}
-
-} // namespace update_client
« no previous file with comments | « components/update_client/test/test_installer.cc ('k') | components/update_client/test/update_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698