blob: 5512f75043ada137bb77e431c4dfe810f187422b [file] [log] [blame]
[email protected]50de9aa22013-11-14 06:30:341// Copyright 2013 The Chromium Authors. All rights reserved.
[email protected]6f371442011-11-09 06:45:462// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]50de9aa22013-11-14 06:30:345#include "extensions/browser/process_map.h"
[email protected]6f371442011-11-09 06:45:466
7#include "testing/gtest/include/gtest/gtest.h"
8
9using extensions::ProcessMap;
10
11TEST(ExtensionProcessMapTest, Test) {
12 ProcessMap map;
13
14 // Test behavior when empty.
15 EXPECT_FALSE(map.Contains("a", 1));
[email protected]6bc04fd82011-12-04 02:29:3516 EXPECT_FALSE(map.Remove("a", 1, 1));
[email protected]6f371442011-11-09 06:45:4617 EXPECT_EQ(0u, map.size());
18
19 // Test insertion and behavior with one item.
[email protected]6bc04fd82011-12-04 02:29:3520 EXPECT_TRUE(map.Insert("a", 1, 1));
[email protected]6f371442011-11-09 06:45:4621 EXPECT_TRUE(map.Contains("a", 1));
22 EXPECT_FALSE(map.Contains("a", 2));
23 EXPECT_FALSE(map.Contains("b", 1));
24 EXPECT_EQ(1u, map.size());
25
26 // Test inserting a duplicate item.
[email protected]6bc04fd82011-12-04 02:29:3527 EXPECT_FALSE(map.Insert("a", 1, 1));
[email protected]6f371442011-11-09 06:45:4628 EXPECT_TRUE(map.Contains("a", 1));
29 EXPECT_EQ(1u, map.size());
30
31 // Insert some more items.
[email protected]6bc04fd82011-12-04 02:29:3532 EXPECT_TRUE(map.Insert("a", 2, 2));
33 EXPECT_TRUE(map.Insert("b", 1, 3));
34 EXPECT_TRUE(map.Insert("b", 2, 4));
[email protected]6f371442011-11-09 06:45:4635 EXPECT_EQ(4u, map.size());
36
37 EXPECT_TRUE(map.Contains("a", 1));
38 EXPECT_TRUE(map.Contains("a", 2));
39 EXPECT_TRUE(map.Contains("b", 1));
40 EXPECT_TRUE(map.Contains("b", 2));
41 EXPECT_FALSE(map.Contains("a", 3));
42
[email protected]6bc04fd82011-12-04 02:29:3543 // Note that this only differs from an existing item because of the site
44 // instance id.
45 EXPECT_TRUE(map.Insert("a", 1, 5));
46 EXPECT_TRUE(map.Contains("a", 1));
[email protected]6f371442011-11-09 06:45:4647
[email protected]6bc04fd82011-12-04 02:29:3548 // Test removal.
49 EXPECT_TRUE(map.Remove("a", 1, 1));
50 EXPECT_FALSE(map.Remove("a", 1, 1));
51 EXPECT_EQ(4u, map.size());
52
53 // Should still return true because there were two site instances for this
54 // extension/process pair.
55 EXPECT_TRUE(map.Contains("a", 1));
56
57 EXPECT_TRUE(map.Remove("a", 1, 5));
58 EXPECT_EQ(3u, map.size());
59 EXPECT_FALSE(map.Contains("a", 1));
60
61 EXPECT_EQ(2, map.RemoveAllFromProcess(2));
[email protected]6f371442011-11-09 06:45:4662 EXPECT_EQ(1u, map.size());
[email protected]6bc04fd82011-12-04 02:29:3563 EXPECT_EQ(0, map.RemoveAllFromProcess(2));
[email protected]6f371442011-11-09 06:45:4664 EXPECT_EQ(1u, map.size());
65}