summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/api/api_resource_manager_unittest.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-07-01 12:20:27 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-07-01 10:39:40 +0000
commit7366110654eec46f21b6824f302356426f48cd74 (patch)
treef2ff1845183f6117a692bb0c705475c8c13556d5 /chromium/extensions/browser/api/api_resource_manager_unittest.cc
parentb92421879c003a0857b2074f7e05b3bbbb326569 (diff)
downloadqtwebengine-chromium-7366110654eec46f21b6824f302356426f48cd74.tar.gz
BASELINE: Update Chromium to 51.0.2704.106
Also add a few extra files we might need for future features. Change-Id: I517c35e43221c610976d347c966d070ad44d4c2b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'chromium/extensions/browser/api/api_resource_manager_unittest.cc')
-rw-r--r--chromium/extensions/browser/api/api_resource_manager_unittest.cc58
1 files changed, 58 insertions, 0 deletions
diff --git a/chromium/extensions/browser/api/api_resource_manager_unittest.cc b/chromium/extensions/browser/api/api_resource_manager_unittest.cc
new file mode 100644
index 00000000000..d398b3075ec
--- /dev/null
+++ b/chromium/extensions/browser/api/api_resource_manager_unittest.cc
@@ -0,0 +1,58 @@
+// 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/files/file_path.h"
+#include "base/strings/string_util.h"
+#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/api/api_resource.h"
+#include "extensions/browser/api/api_resource_manager.h"
+#include "extensions/browser/api_unittest.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/test_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+using content::BrowserThread;
+
+namespace extensions {
+
+class ApiResourceManagerUnitTest : public ApiUnitTest {};
+
+class FakeApiResource : public ApiResource {
+ public:
+ explicit FakeApiResource(const std::string& owner_extension_id)
+ : ApiResource(owner_extension_id) {}
+ ~FakeApiResource() override {}
+ static const BrowserThread::ID kThreadId = BrowserThread::UI;
+};
+
+TEST_F(ApiResourceManagerUnitTest, TwoAppsCannotShareResources) {
+ scoped_ptr<ApiResourceManager<FakeApiResource>> manager(
+ new ApiResourceManager<FakeApiResource>(browser_context()));
+ scoped_refptr<extensions::Extension> extension_one =
+ test_util::CreateEmptyExtension("one");
+ scoped_refptr<extensions::Extension> extension_two =
+ test_util::CreateEmptyExtension("two");
+
+ const std::string extension_one_id(extension_one->id());
+ const std::string extension_two_id(extension_two->id());
+
+ int resource_one_id = manager->Add(new FakeApiResource(extension_one_id));
+ int resource_two_id = manager->Add(new FakeApiResource(extension_two_id));
+ CHECK(resource_one_id);
+ CHECK(resource_two_id);
+
+ // Confirm each extension can get its own resource.
+ ASSERT_TRUE(manager->Get(extension_one_id, resource_one_id) != NULL);
+ ASSERT_TRUE(manager->Get(extension_two_id, resource_two_id) != NULL);
+
+ // Confirm neither extension can get the other's resource.
+ ASSERT_TRUE(manager->Get(extension_one_id, resource_two_id) == NULL);
+ ASSERT_TRUE(manager->Get(extension_two_id, resource_one_id) == NULL);
+
+ // And make sure we're not susceptible to any Jedi mind tricks.
+ ASSERT_TRUE(manager->Get(std::string(), resource_one_id) == NULL);
+}
+
+} // namespace extensions