summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc86
1 files changed, 72 insertions, 14 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc b/chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc
index 63bdd6c5663..2351b8db905 100644
--- a/chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc
+++ b/chromium/third_party/blink/renderer/core/html/html_meta_element_test.cc
@@ -17,22 +17,24 @@
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/core/testing/color_scheme_helper.h"
#include "third_party/blink/renderer/core/testing/page_test_base.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_compositor.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_request.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_test.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
+#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
namespace blink {
class HTMLMetaElementTest : public PageTestBase,
private ScopedDisplayCutoutAPIForTest,
private ScopedMetaColorSchemeForTest,
- private ScopedMediaQueryPrefersColorSchemeForTest,
private ScopedCSSColorSchemeForTest {
public:
HTMLMetaElementTest()
: ScopedDisplayCutoutAPIForTest(true),
ScopedMetaColorSchemeForTest(true),
- ScopedMediaQueryPrefersColorSchemeForTest(true),
ScopedCSSColorSchemeForTest(true) {}
void SetUp() override {
PageTestBase::SetUp();
@@ -70,7 +72,7 @@ class HTMLMetaElementTest : public PageTestBase,
private:
void LoadTestPageWithViewportFitValue(const String& value) {
- GetDocument().documentElement()->SetInnerHTMLFromString(
+ GetDocument().documentElement()->setInnerHTML(
"<head>"
"<meta name='viewport' content='viewport-fit=" +
value +
@@ -78,6 +80,7 @@ class HTMLMetaElementTest : public PageTestBase,
"</head>");
}
};
+class HTMLMetaElementSimTest : public SimTest {};
TEST_F(HTMLMetaElementTest, ViewportFit_Auto) {
EXPECT_EQ(mojom::ViewportFit::kAuto,
@@ -100,7 +103,7 @@ TEST_F(HTMLMetaElementTest, ViewportFit_Invalid) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_FirstWins) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta name="color-scheme" content="dark">
<meta name="color-scheme" content="light">
)HTML");
@@ -109,7 +112,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_FirstWins) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_Remove) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta id="first-meta" name="color-scheme" content="dark">
<meta name="color-scheme" content="light">
)HTML");
@@ -122,7 +125,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_Remove) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_InsertBefore) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta name="color-scheme" content="dark">
)HTML");
@@ -135,7 +138,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_InsertBefore) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_AppendChild) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta name="color-scheme" content="dark">
)HTML");
@@ -147,7 +150,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_AppendChild) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_SetAttribute) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta id="meta" name="color-scheme" content="dark">
)HTML");
@@ -160,7 +163,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_SetAttribute) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_RemoveContentAttribute) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta id="meta" name="color-scheme" content="dark">
)HTML");
@@ -173,7 +176,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_RemoveContentAttribute) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeProcessing_RemoveNameAttribute) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta id="meta" name="color-scheme" content="dark">
)HTML");
@@ -222,9 +225,8 @@ TEST_F(HTMLMetaElementTest, ColorSchemeParsing) {
}
TEST_F(HTMLMetaElementTest, ColorSchemeForcedDarkeningAndMQ) {
- ColorSchemeHelper color_scheme_helper;
- color_scheme_helper.SetPreferredColorScheme(GetDocument(),
- PreferredColorScheme::kDark);
+ ColorSchemeHelper color_scheme_helper(GetDocument());
+ color_scheme_helper.SetPreferredColorScheme(PreferredColorScheme::kDark);
auto* media_query = GetDocument().GetMediaQueryMatcher().MatchMedia(
"(prefers-color-scheme: dark)");
@@ -243,7 +245,7 @@ TEST_F(HTMLMetaElementTest, ColorSchemeForcedDarkeningAndMQ) {
}
TEST_F(HTMLMetaElementTest, ReferrerPolicyWithoutContent) {
- GetDocument().head()->SetInnerHTMLFromString(R"HTML(
+ GetDocument().head()->setInnerHTML(R"HTML(
<meta name="referrer" content="strict-origin">
<meta name="referrer" >
)HTML");
@@ -251,4 +253,60 @@ TEST_F(HTMLMetaElementTest, ReferrerPolicyWithoutContent) {
GetDocument().GetReferrerPolicy());
}
+// This tests whether Web Monetization counter is properly triggered.
+TEST_F(HTMLMetaElementTest, WebMonetizationCounter) {
+ // <meta> elements that don't have name equal to "monetization" or that lack
+ // a content attribute are not counted.
+ GetDocument().head()->setInnerHTML(R"HTML(
+ <meta name="color-scheme" content="dark">
+ <meta name="monetization">
+ )HTML");
+ EXPECT_FALSE(
+ GetDocument().IsUseCounted(WebFeature::kHTMLMetaElementMonetization));
+
+ // A <link rel="monetization"> with a content attribute is counted.
+ GetDocument().head()->setInnerHTML(R"HTML(
+ <meta name="monetization" content="$payment.pointer.url">
+ )HTML");
+ EXPECT_TRUE(
+ GetDocument().IsUseCounted(WebFeature::kHTMLMetaElementMonetization));
+
+ // However, it does not affect the counter for <link rel="monetization">.
+ EXPECT_FALSE(
+ GetDocument().IsUseCounted(WebFeature::kHTMLLinkElementMonetization));
+}
+
+TEST_F(HTMLMetaElementSimTest, WebMonetizationNotCountedInSubFrame) {
+ SimRequest main_resource("https://example.com/", "text/html");
+ SimRequest child_frame_resource("https://example.com/subframe.html",
+ "text/html");
+
+ LoadURL("https://example.com/");
+
+ main_resource.Complete(String::Format(
+ R"HTML(
+ <body onload='console.log("main body onload");'>
+ <iframe src='https://example.com/subframe.html'
+ onload='console.log("child frame element onload");'></iframe>
+ </body>)HTML"));
+
+ Compositor().BeginFrame();
+ test::RunPendingTasks();
+
+ child_frame_resource.Complete(String::Format(R"HTML(
+ <meta name="monetization" content="$payment.pointer.url">
+ )HTML"));
+
+ Compositor().BeginFrame();
+ test::RunPendingTasks();
+
+ // Ensure that main frame and subframe are loaded before checking the counter.
+ EXPECT_TRUE(ConsoleMessages().Contains("main body onload"));
+ EXPECT_TRUE(ConsoleMessages().Contains("child frame element onload"));
+
+ // <meta name="monetization"> is not counted in subframes.
+ EXPECT_FALSE(
+ GetDocument().IsUseCounted(WebFeature::kHTMLMetaElementMonetization));
+}
+
} // namespace blink