1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h"
7 #include "base/strings/string16.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "content/browser/shared_worker/shared_worker_instance.h"
10 #include "content/browser/worker_host/worker_storage_partition.h"
11 #include "content/public/test/test_browser_context.h"
12 #include "testing/gtest/include/gtest/gtest.h"
16 class SharedWorkerInstanceTest : public testing::Test {
18 SharedWorkerInstanceTest()
19 : browser_context_(new TestBrowserContext()),
20 partition_(new WorkerStoragePartition(
21 browser_context_->GetRequestContext(),
22 NULL, NULL, NULL, NULL, NULL, NULL, NULL)) {
25 bool Matches(const SharedWorkerInstance& instance,
26 const std::string& url,
27 const base::StringPiece& name) {
28 return instance.Matches(GURL(url),
29 base::ASCIIToUTF16(name),
31 browser_context_->GetResourceContext());
34 scoped_ptr<TestBrowserContext> browser_context_;
35 scoped_ptr<WorkerStoragePartition> partition_;
37 DISALLOW_COPY_AND_ASSIGN(SharedWorkerInstanceTest);
40 TEST_F(SharedWorkerInstanceTest, MatchesTest) {
41 SharedWorkerInstance instance1(GURL("http://example.com/w.js"),
44 blink::WebContentSecurityPolicyTypeReport,
45 browser_context_->GetResourceContext(),
47 EXPECT_TRUE(Matches(instance1, "http://example.com/w.js", ""));
48 EXPECT_FALSE(Matches(instance1, "http://example.com/w2.js", ""));
49 EXPECT_FALSE(Matches(instance1, "http://example.net/w.js", ""));
50 EXPECT_FALSE(Matches(instance1, "http://example.net/w2.js", ""));
51 EXPECT_FALSE(Matches(instance1, "http://example.com/w.js", "name"));
52 EXPECT_FALSE(Matches(instance1, "http://example.com/w2.js", "name"));
53 EXPECT_FALSE(Matches(instance1, "http://example.net/w.js", "name"));
54 EXPECT_FALSE(Matches(instance1, "http://example.net/w2.js", "name"));
56 SharedWorkerInstance instance2(GURL("http://example.com/w.js"),
57 base::ASCIIToUTF16("name"),
59 blink::WebContentSecurityPolicyTypeReport,
60 browser_context_->GetResourceContext(),
62 EXPECT_FALSE(Matches(instance2, "http://example.com/w.js", ""));
63 EXPECT_FALSE(Matches(instance2, "http://example.com/w2.js", ""));
64 EXPECT_FALSE(Matches(instance2, "http://example.net/w.js", ""));
65 EXPECT_FALSE(Matches(instance2, "http://example.net/w2.js", ""));
66 EXPECT_TRUE(Matches(instance2, "http://example.com/w.js", "name"));
67 EXPECT_TRUE(Matches(instance2, "http://example.com/w2.js", "name"));
68 EXPECT_FALSE(Matches(instance2, "http://example.net/w.js", "name"));
69 EXPECT_FALSE(Matches(instance2, "http://example.net/w2.js", "name"));
70 EXPECT_FALSE(Matches(instance2, "http://example.com/w.js", "name2"));
71 EXPECT_FALSE(Matches(instance2, "http://example.com/w2.js", "name2"));
72 EXPECT_FALSE(Matches(instance2, "http://example.net/w.js", "name2"));
73 EXPECT_FALSE(Matches(instance2, "http://example.net/w2.js", "name2"));
76 } // namespace content