blob: 73c21940d60cbfbd3f83af1818e9666b245a2346 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/css/CSSPageRule.h"
#include "core/css/CSSRuleList.h"
#include "core/css/CSSTestHelper.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
TEST(CSSPageRule, Serializing)
{
CSSTestHelper helper;
const char* cssRule = "@page :left { size: auto; }";
helper.addCSSRules(cssRule);
if (helper.cssRules()) {
EXPECT_EQ(1u, helper.cssRules()->length());
EXPECT_EQ(String(cssRule), helper.cssRules()->item(0)->cssText());
EXPECT_EQ(CSSRule::kPageRule, helper.cssRules()->item(0)->type());
if (CSSPageRule* pageRule = toCSSPageRule(helper.cssRules()->item(0)))
EXPECT_EQ(":left", pageRule->selectorText());
}
}
TEST(CSSPageRule, selectorText)
{
CSSTestHelper helper;
const char* cssRule = "@page :left { size: auto; }";
helper.addCSSRules(cssRule);
ASSERT(helper.cssRules());
EXPECT_EQ(1u, helper.cssRules()->length());
CSSPageRule* pageRule = toCSSPageRule(helper.cssRules()->item(0));
EXPECT_EQ(":left", pageRule->selectorText());
// set invalid page selector.
pageRule->setSelectorText(":hover");
EXPECT_EQ(":left", pageRule->selectorText());
// set invalid page selector.
pageRule->setSelectorText("right { bla");
EXPECT_EQ(":left", pageRule->selectorText());
// set page pseudo class selector.
pageRule->setSelectorText(":right");
EXPECT_EQ(":right", pageRule->selectorText());
// set page type selector.
pageRule->setSelectorText("namedpage");
EXPECT_EQ("namedpage", pageRule->selectorText());
}
} // namespace blink