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. 4 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" 13 14 namespace content { 15 16 class SharedWorkerInstanceTest : public testing::Test { 17 protected: 18 SharedWorkerInstanceTest() 19 : browser_context_(new TestBrowserContext()), 20 partition_( 21 new WorkerStoragePartition(browser_context_->GetRequestContext(), 22 NULL, 23 NULL, 24 NULL, 25 NULL, 26 NULL, 27 NULL, 28 NULL)), 29 partition_id_(*partition_.get()) {} 30 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), 36 partition_id_, 37 browser_context_->GetResourceContext()); 38 } 39 40 scoped_ptr<TestBrowserContext> browser_context_; 41 scoped_ptr<WorkerStoragePartition> partition_; 42 const WorkerStoragePartitionId partition_id_; 43 44 DISALLOW_COPY_AND_ASSIGN(SharedWorkerInstanceTest); 45 }; 46 47 TEST_F(SharedWorkerInstanceTest, MatchesTest) { 48 SharedWorkerInstance instance1(GURL("http://example.com/w.js"), 49 base::string16(), 50 base::string16(), 51 blink::WebContentSecurityPolicyTypeReport, 52 browser_context_->GetResourceContext(), 53 partition_id_); 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")); 62 63 SharedWorkerInstance instance2(GURL("http://example.com/w.js"), 64 base::ASCIIToUTF16("name"), 65 base::string16(), 66 blink::WebContentSecurityPolicyTypeReport, 67 browser_context_->GetResourceContext(), 68 partition_id_); 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")); 81 } 82 83 } // namespace content 84