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()),
21 new WorkerStoragePartition(browser_context_
->GetRequestContext(),
29 partition_id_(*partition_
.get()) {}
31 bool Matches(const SharedWorkerInstance
& instance
,
32 const std::string
& url
,
33 const base::StringPiece
& name
) {
34 return instance
.Matches(GURL(url
),
35 base::ASCIIToUTF16(name
),
37 browser_context_
->GetResourceContext());
40 scoped_ptr
<TestBrowserContext
> browser_context_
;
41 scoped_ptr
<WorkerStoragePartition
> partition_
;
42 const WorkerStoragePartitionId partition_id_
;
44 DISALLOW_COPY_AND_ASSIGN(SharedWorkerInstanceTest
);
47 TEST_F(SharedWorkerInstanceTest
, MatchesTest
) {
48 SharedWorkerInstance
instance1(GURL("http://example.com/w.js"),
51 blink::WebContentSecurityPolicyTypeReport
,
52 browser_context_
->GetResourceContext(),
54 EXPECT_TRUE(Matches(instance1
, "http://example.com/w.js", ""));
55 EXPECT_FALSE(Matches(instance1
, "http://example.com/w2.js", ""));
56 EXPECT_FALSE(Matches(instance1
, "http://example.net/w.js", ""));
57 EXPECT_FALSE(Matches(instance1
, "http://example.net/w2.js", ""));
58 EXPECT_FALSE(Matches(instance1
, "http://example.com/w.js", "name"));
59 EXPECT_FALSE(Matches(instance1
, "http://example.com/w2.js", "name"));
60 EXPECT_FALSE(Matches(instance1
, "http://example.net/w.js", "name"));
61 EXPECT_FALSE(Matches(instance1
, "http://example.net/w2.js", "name"));
63 SharedWorkerInstance
instance2(GURL("http://example.com/w.js"),
64 base::ASCIIToUTF16("name"),
66 blink::WebContentSecurityPolicyTypeReport
,
67 browser_context_
->GetResourceContext(),
69 EXPECT_FALSE(Matches(instance2
, "http://example.com/w.js", ""));
70 EXPECT_FALSE(Matches(instance2
, "http://example.com/w2.js", ""));
71 EXPECT_FALSE(Matches(instance2
, "http://example.net/w.js", ""));
72 EXPECT_FALSE(Matches(instance2
, "http://example.net/w2.js", ""));
73 EXPECT_TRUE(Matches(instance2
, "http://example.com/w.js", "name"));
74 EXPECT_TRUE(Matches(instance2
, "http://example.com/w2.js", "name"));
75 EXPECT_FALSE(Matches(instance2
, "http://example.net/w.js", "name"));
76 EXPECT_FALSE(Matches(instance2
, "http://example.net/w2.js", "name"));
77 EXPECT_FALSE(Matches(instance2
, "http://example.com/w.js", "name2"));
78 EXPECT_FALSE(Matches(instance2
, "http://example.com/w2.js", "name2"));
79 EXPECT_FALSE(Matches(instance2
, "http://example.net/w.js", "name2"));
80 EXPECT_FALSE(Matches(instance2
, "http://example.net/w2.js", "name2"));
83 } // namespace content