diff options
author | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-10 01:06:56 +0000 |
---|---|---|
committer | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-10 01:06:56 +0000 |
commit | 3f2085b50922a7c325b4c2fd6fb6fdfdabbd9f08 (patch) | |
tree | 1f766d28232c459540778d999525445e6bfeca8e | |
parent | 65ce83601b722d2e1ad190a23240b2fcee8b0a7a (diff) | |
download | chromium_src-3f2085b50922a7c325b4c2fd6fb6fdfdabbd9f08.zip chromium_src-3f2085b50922a7c325b4c2fd6fb6fdfdabbd9f08.tar.gz chromium_src-3f2085b50922a7c325b4c2fd6fb6fdfdabbd9f08.tar.bz2 |
Component updater: Adding test for prodversionmin
BUG=61602
TEST=none
Review URL: http://codereview.chromium.org/7849002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100548 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/component_updater/component_updater_service_unittest.cc | 89 | ||||
-rw-r--r-- | chrome/test/data/components/updatecheck_reply_2.xml | 6 |
2 files changed, 73 insertions, 22 deletions
diff --git a/chrome/browser/component_updater/component_updater_service_unittest.cc b/chrome/browser/component_updater/component_updater_service_unittest.cc index 59acb6d..c5cd516 100644 --- a/chrome/browser/component_updater/component_updater_service_unittest.cc +++ b/chrome/browser/component_updater/component_updater_service_unittest.cc @@ -118,11 +118,20 @@ const char header_ok_reply[] = "HTTP/1.1 200 OK\0" "Content-type: text/html\0" "\0"; + +const char expected_crx_url[] = + "http://localhost/download/jebgalgnebhfojomionfpkfelancnnkf.crx"; + } // namespace // Common fixture for all the component updater tests. class ComponentUpdaterTest : public testing::Test { public: + enum TestComponents { + kTestComponent_abag, + kTestComponent_jebg + }; + ComponentUpdaterTest() : component_updater_(NULL), test_config_(NULL) { // The component updater instance under test. test_config_ = new TestConfigurator; @@ -167,6 +176,21 @@ class ComponentUpdaterTest : public testing::Test { return test_config_; } + void RegisterComponent(CrxComponent* com, + TestComponents component, + const Version& version) { + if (component == kTestComponent_abag) { + com->name = "test_abag"; + com->pk_hash.assign(abag_hash, abag_hash + arraysize(abag_hash)); + } else { + com->name = "test_jebg"; + com->pk_hash.assign(jebg_hash, jebg_hash + arraysize(jebg_hash)); + } + com->version = version; + com->installer = new TestInstaller; + component_updater_->RegisterComponent(*com); + } + private: scoped_ptr<ComponentUpdateService> component_updater_; FilePath test_data_dir_; @@ -211,12 +235,7 @@ TEST_F(ComponentUpdaterTest, CheckCrxSleep) { interceptor(new ComponentUpdateInterceptor()); CrxComponent com; - com.name = "test_abag"; - com.pk_hash.assign(abag_hash, abag_hash + arraysize(abag_hash)); - com.version = Version("1.1"); - com.installer = new TestInstaller; - - component_updater()->RegisterComponent(com); + RegisterComponent(&com, kTestComponent_abag, Version("1.1")); const char expected_update_url[] = "http://localhost/upd?x=id%3D" @@ -300,20 +319,10 @@ TEST_F(ComponentUpdaterTest, InstallCrx) { interceptor(new ComponentUpdateInterceptor()); CrxComponent com1; - com1.name = "test_jebg"; - com1.pk_hash.assign(jebg_hash, jebg_hash + arraysize(jebg_hash)); - com1.version = Version("0.9"); - com1.installer = new TestInstaller; - + RegisterComponent(&com1, kTestComponent_jebg, Version("0.9")); CrxComponent com2; - com2.name = "test_abag"; - com2.pk_hash.assign(abag_hash, abag_hash + arraysize(abag_hash)); - com2.version = Version("2.2"); - com2.installer = new TestInstaller; - - component_updater()->RegisterComponent(com1); - component_updater()->RegisterComponent(com2); - + RegisterComponent(&com2, kTestComponent_abag, Version("2.2")); + const char expected_update_url_1[] = "http://localhost/upd?x=id%3D" "jebgalgnebhfojomionfpkfelancnnkf%26v%3D0.9%26uc&x=id%3D" @@ -324,9 +333,6 @@ TEST_F(ComponentUpdaterTest, InstallCrx) { "abagagagagagagagagagagagagagagag%26v%3D2.2%26uc&x=id%3D" "jebgalgnebhfojomionfpkfelancnnkf%26v%3D1.0%26uc"; - const char expected_crx_url[] = - "http://localhost/download/jebgalgnebhfojomionfpkfelancnnkf.crx"; - interceptor->SetResponse(expected_update_url_1, header_ok_reply, test_file("updatecheck_reply_1.xml")); interceptor->SetResponse(expected_update_url_2, header_ok_reply, @@ -362,3 +368,42 @@ TEST_F(ComponentUpdaterTest, InstallCrx) { delete com2.installer; xmlCleanupGlobals(); } + +// This test checks that the "prodversionmin" value is handled correctly. In +// particular there should not be an install because the minimun product +// version is much higher than of chrome. +TEST_F(ComponentUpdaterTest, ProdVersionCheck) { + MessageLoop message_loop; + BrowserThread ui_thread(BrowserThread::UI, &message_loop); + BrowserThread file_thread(BrowserThread::FILE); + BrowserThread io_thread(BrowserThread::IO); + + io_thread.StartWithOptions(base::Thread::Options(MessageLoop::TYPE_IO, 0)); + file_thread.Start(); + + scoped_refptr<ComponentUpdateInterceptor> + interceptor(new ComponentUpdateInterceptor()); + + CrxComponent com; + RegisterComponent(&com, kTestComponent_jebg, Version("0.9")); + + const char expected_update_url[] = + "http://localhost/upd?x=id%3D" + "jebgalgnebhfojomionfpkfelancnnkf%26v%3D0.9%26uc"; + + interceptor->SetResponse(expected_update_url, + header_ok_reply, + test_file("updatecheck_reply_2.xml")); + interceptor->SetResponse(expected_crx_url, header_ok_reply, + test_file("jebgalgnebhfojomionfpkfelancnnkf.crx")); + + test_configurator()->SetLoopCount(1); + component_updater()->Start(); + message_loop.Run(); + + EXPECT_EQ(1, interceptor->hit_count()); + EXPECT_EQ(0, static_cast<TestInstaller*>(com.installer)->error()); + EXPECT_EQ(0, static_cast<TestInstaller*>(com.installer)->install_count()); + + component_updater()->Stop(); +} diff --git a/chrome/test/data/components/updatecheck_reply_2.xml b/chrome/test/data/components/updatecheck_reply_2.xml new file mode 100644 index 0000000..82689ae --- /dev/null +++ b/chrome/test/data/components/updatecheck_reply_2.xml @@ -0,0 +1,6 @@ +<?xml version='1.0' encoding='UTF-8'?> +<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> + <app appid='jebgalgnebhfojomionfpkfelancnnkf'> + <updatecheck codebase='http://localhost/download/jebgalgnebhfojomionfpkfelancnnkf.crx' version='2.0' prodversionmin='55.0.1.0' /> + </app> +</gupdate> |