diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-29 01:11:36 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-29 01:11:36 +0000 |
commit | ec7db28ad27a4285b43fb53e63c2b932fe6c3a7d (patch) | |
tree | 05799bb8c07843b846194ab26185ef26bab4e433 /chrome/common/extensions/extension_set_unittest.cc | |
parent | 4c8179009b83183fe99576e561f5c045bac8c589 (diff) | |
download | chromium_src-ec7db28ad27a4285b43fb53e63c2b932fe6c3a7d.zip chromium_src-ec7db28ad27a4285b43fb53e63c2b932fe6c3a7d.tar.gz chromium_src-ec7db28ad27a4285b43fb53e63c2b932fe6c3a7d.tar.bz2 |
Move ExtensionRendereInfo into common and call it ExtensionSet instead.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6383013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73055 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/extension_set_unittest.cc')
-rw-r--r-- | chrome/common/extensions/extension_set_unittest.cc | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/chrome/common/extensions/extension_set_unittest.cc b/chrome/common/extensions/extension_set_unittest.cc new file mode 100644 index 0000000..1b85ac5 --- /dev/null +++ b/chrome/common/extensions/extension_set_unittest.cc @@ -0,0 +1,118 @@ +// Copyright (c) 2011 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/file_path.h" +#include "base/logging.h" +#include "base/ref_counted.h" +#include "base/scoped_ptr.h" +#include "base/values.h" +#include "chrome/common/extensions/extension.h" +#include "chrome/common/extensions/extension_set.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +scoped_refptr<Extension> CreateTestExtension(const std::string& name, + const std::string& launch_url, + const std::string& extent) { +#if defined(OS_WIN) + FilePath path(FILE_PATH_LITERAL("c:\\")); +#else + FilePath path(FILE_PATH_LITERAL("/")); +#endif + path = path.AppendASCII(name); + + DictionaryValue manifest; + manifest.SetString("name", name); + manifest.SetString("version", "1"); + + if (!launch_url.empty()) + manifest.SetString("app.launch.web_url", launch_url); + + if (!extent.empty()) { + ListValue* urls = new ListValue(); + manifest.Set("app.urls", urls); + urls->Append(Value::CreateStringValue(extent)); + } + + const bool kRequireKey = false; + std::string error; + scoped_refptr<Extension> extension( + Extension::Create(path, Extension::INTERNAL, manifest, kRequireKey, + &error)); + EXPECT_TRUE(extension.get()) << error; + return extension; +} + +} // namespace + +TEST(ExtensionSetTest, ExtensionSet) { + scoped_refptr<Extension> ext1(CreateTestExtension( + "a", "https://chrome.google.com/launch", "https://chrome.google.com/")); + + scoped_refptr<Extension> ext2(CreateTestExtension( + "a", "http://code.google.com/p/chromium", + "http://code.google.com/p/chromium/")); + + scoped_refptr<Extension> ext3(CreateTestExtension( + "b", "http://dev.chromium.org/", "http://dev.chromium.org/")); + + scoped_refptr<Extension> ext4(CreateTestExtension("c", "", "")); + + ASSERT_TRUE(ext1 && ext2 && ext3 && ext4); + + ExtensionSet extensions; + + // Add an extension. + extensions.Insert(ext1); + EXPECT_EQ(1u, extensions.size()); + EXPECT_EQ(ext1, extensions.GetByID(ext1->id())); + + // Since extension2 has same ID, it should overwrite extension1. + extensions.Insert(ext2); + EXPECT_EQ(1u, extensions.size()); + EXPECT_EQ(ext2, extensions.GetByID(ext1->id())); + + // Add the other extensions. + extensions.Insert(ext3); + extensions.Insert(ext4); + EXPECT_EQ(3u, extensions.size()); + + // Get extension by its chrome-extension:// URL + EXPECT_EQ(ext2, extensions.GetByURL( + ext2->GetResourceURL("test.html"))); + EXPECT_EQ(ext3, extensions.GetByURL( + ext3->GetResourceURL("test.html"))); + EXPECT_EQ(ext4, extensions.GetByURL( + ext4->GetResourceURL("test.html"))); + + // Get extension by web extent. + EXPECT_EQ(ext2, extensions.GetByURL( + GURL("http://code.google.com/p/chromium/monkey"))); + EXPECT_EQ(ext3, extensions.GetByURL( + GURL("http://dev.chromium.org/design-docs/"))); + EXPECT_FALSE(extensions.GetByURL( + GURL("http://blog.chromium.org/"))); + + // Test InSameExtent(). + EXPECT_TRUE(extensions.InSameExtent( + GURL("http://code.google.com/p/chromium/monkey/"), + GURL("http://code.google.com/p/chromium/"))); + EXPECT_FALSE(extensions.InSameExtent( + GURL("http://code.google.com/p/chromium/"), + GURL("https://code.google.com/p/chromium/"))); + EXPECT_FALSE(extensions.InSameExtent( + GURL("http://code.google.com/p/chromium/"), + GURL("http://dev.chromium.org/design-docs/"))); + + // Both of these should be NULL, which mean true for InSameExtent. + EXPECT_TRUE(extensions.InSameExtent( + GURL("http://www.google.com/"), + GURL("http://blog.chromium.org/"))); + + // Remove one of the extensions. + extensions.Remove(ext2->id()); + EXPECT_EQ(2u, extensions.size()); + EXPECT_FALSE(extensions.GetByID(ext2->id())); +} |