diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-07-01 12:20:27 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-07-01 10:39:40 +0000 |
commit | 7366110654eec46f21b6824f302356426f48cd74 (patch) | |
tree | f2ff1845183f6117a692bb0c705475c8c13556d5 /chromium/extensions/browser/api/api_resource_manager_unittest.cc | |
parent | b92421879c003a0857b2074f7e05b3bbbb326569 (diff) | |
download | qtwebengine-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.cc | 58 |
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 |