1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
content / browser / renderer_host / browsing_context_group_swap_unittest.cc [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/renderer_host/browsing_context_group_swap.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
TEST(BrowsingContextGroupSwap, CreateDefault) {
BrowsingContextGroupSwap default_swap =
BrowsingContextGroupSwap::CreateDefault();
EXPECT_EQ(BrowsingContextGroupSwapType::kNoSwap, default_swap.type());
EXPECT_FALSE(default_swap.ShouldSwap());
EXPECT_FALSE(default_swap.ShouldClearProxiesOnCommit());
EXPECT_FALSE(default_swap.ShouldClearWindowName());
}
TEST(BrowsingContextGroupSwap, CreateNoSwap) {
BrowsingContextGroupSwap no_swap = BrowsingContextGroupSwap::CreateNoSwap(
ShouldSwapBrowsingInstance::kNo_NotMainFrame);
EXPECT_EQ(BrowsingContextGroupSwapType::kNoSwap, no_swap.type());
EXPECT_FALSE(no_swap.ShouldSwap());
EXPECT_FALSE(no_swap.ShouldClearProxiesOnCommit());
EXPECT_FALSE(no_swap.ShouldClearWindowName());
EXPECT_EQ(ShouldSwapBrowsingInstance::kNo_NotMainFrame, no_swap.reason());
}
TEST(BrowsingContextGroupSwap, CreateCoopSwap) {
BrowsingContextGroupSwap coop_swap =
BrowsingContextGroupSwap::CreateCoopSwap();
EXPECT_EQ(BrowsingContextGroupSwapType::kCoopSwap, coop_swap.type());
EXPECT_TRUE(coop_swap.ShouldSwap());
EXPECT_TRUE(coop_swap.ShouldClearProxiesOnCommit());
EXPECT_TRUE(coop_swap.ShouldClearWindowName());
EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_ForceSwap, coop_swap.reason());
}
TEST(BrowsingContextGroupSwap, CreateRelatedCoopSwap) {
BrowsingContextGroupSwap related_coop_swap =
BrowsingContextGroupSwap::CreateRelatedCoopSwap();
EXPECT_EQ(BrowsingContextGroupSwapType::kRelatedCoopSwap,
related_coop_swap.type());
EXPECT_TRUE(related_coop_swap.ShouldSwap());
EXPECT_FALSE(related_coop_swap.ShouldClearProxiesOnCommit());
EXPECT_TRUE(related_coop_swap.ShouldClearWindowName());
EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_ForceSwap,
related_coop_swap.reason());
}
TEST(BrowsingContextGroupSwap, CreateSecuritySwap) {
BrowsingContextGroupSwap security_swap =
BrowsingContextGroupSwap::CreateSecuritySwap();
EXPECT_EQ(BrowsingContextGroupSwapType::kSecuritySwap, security_swap.type());
EXPECT_TRUE(security_swap.ShouldSwap());
EXPECT_FALSE(security_swap.ShouldClearProxiesOnCommit());
EXPECT_FALSE(security_swap.ShouldClearWindowName());
EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_ForceSwap, security_swap.reason());
}
TEST(BrowsingContextGroupSwap, CreateProactiveSwap) {
BrowsingContextGroupSwap proactive_swap =
BrowsingContextGroupSwap::CreateProactiveSwap(
ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap);
EXPECT_EQ(BrowsingContextGroupSwapType::kProactiveSwap,
proactive_swap.type());
EXPECT_TRUE(proactive_swap.ShouldSwap());
EXPECT_FALSE(proactive_swap.ShouldClearProxiesOnCommit());
EXPECT_FALSE(proactive_swap.ShouldClearWindowName());
EXPECT_EQ(ShouldSwapBrowsingInstance::kYes_SameSiteProactiveSwap,
proactive_swap.reason());
}
} // namespace
} // namespace content