blob: 1975f987f8fd8649a23c371897d6e7aa391310f7 [file] [log] [blame]
// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "cobalt/cssom/css_declared_style_data.h"
#include "cobalt/cssom/css_declared_style_declaration.h"
#include "cobalt/cssom/css_parser.h"
#include "cobalt/cssom/css_style_rule.h"
#include "cobalt/cssom/css_style_sheet.h"
#include "cobalt/cssom/keyword_value.h"
#include "cobalt/cssom/length_value.h"
#include "cobalt/cssom/mutation_observer.h"
#include "cobalt/cssom/percentage_value.h"
#include "cobalt/cssom/property_definitions.h"
#include "cobalt/cssom/testing/mock_css_parser.h"
#include "cobalt/script/exception_state.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cobalt {
namespace cssom {
using ::testing::_;
using ::testing::Return;
namespace {
class MockMutationObserver : public MutationObserver {
public:
MOCK_METHOD0(OnCSSMutation, void());
};
} // namespace
TEST(CSSDeclaredStyleDeclarationTest, BackgroundSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundProperty), background, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background(background, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BackgroundColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background_color = "#fff";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundColorProperty),
background_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background_color(background_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BackgroundImageSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background_image = "url('images/sample.png')";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundImageProperty),
background_image, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background_image(background_image, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BackgroundPositionSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background_position = "50% 50%";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundPositionProperty),
background_position, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background_position(background_position, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BackgroundRepeatSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background_repeat = "no-repeat";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundRepeatProperty),
background_repeat, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background_repeat(background_repeat, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BackgroundSizeSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background_size = "cover";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundSizeProperty),
background_size, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_background_size(background_size, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderProperty), border, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border(border, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomProperty), border_bottom, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_bottom(border_bottom, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomColorProperty),
border_bottom_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_bottom_color(border_bottom_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomLeftRadiusSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom_left_radius = "0.2em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomLeftRadiusProperty),
border_bottom_left_radius, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_bottom_left_radius(border_bottom_left_radius, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomRightRadiusSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom_right_radius = "0.2em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomRightRadiusProperty),
border_bottom_right_radius, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_bottom_right_radius(border_bottom_right_radius, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomStyleProperty),
border_bottom_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_bottom_style(border_bottom_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderBottomWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_bottom_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderBottomWidthProperty),
border_bottom_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_border_bottom_width(border_bottom_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderColorProperty), border_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_color(border_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderLeftSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_left = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderLeftProperty), border_left, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_left(border_left, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderLeftColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_left_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderLeftColorProperty),
border_left_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_left_color(border_left_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderLeftStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_left_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderLeftStyleProperty),
border_left_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_left_style(border_left_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderLeftWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_left_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderLeftWidthProperty),
border_left_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_border_left_width(border_left_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderRadiusSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_radius = "0.2em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderRadiusProperty), border_radius, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_radius(border_radius, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderRightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_right = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderRightProperty), border_right, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_right(border_right, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderRightColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_right_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderRightColorProperty),
border_right_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_right_color(border_right_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderRightStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_right_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderRightStyleProperty),
border_right_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_right_style(border_right_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderRightWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_right_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderRightWidthProperty),
border_right_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_border_right_width(border_right_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderStyleProperty), border_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_style(border_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopLeftRadiusSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top_left_radius = "0.2em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopLeftRadiusProperty),
border_top_left_radius, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_top_left_radius(border_top_left_radius, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopRightRadiusSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top_right_radius = "0.2em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopRightRadiusProperty),
border_top_right_radius, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_top_right_radius(border_top_right_radius, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopProperty), border_top, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_top(border_top, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopColorProperty),
border_top_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_top_color(border_top_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopStyleProperty),
border_top_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_border_top_style(border_top_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderTopWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_top_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderTopWidthProperty),
border_top_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_border_top_width(border_top_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BorderWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string border_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBorderWidthProperty), border_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_border_width(border_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BottomSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string bottom = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kBottomProperty), bottom, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_bottom(bottom, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, BoxShadowSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string box_shadow = "none";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBoxShadowProperty), box_shadow, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_box_shadow(box_shadow, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, ColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string color = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kColorProperty), color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_color(color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, ContentSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string content = "url(foo.png)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kContentProperty), content, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_content(content, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, DisplaySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string display = "inline-block";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kDisplayProperty), display, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_display(display, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FilterSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string filter =
"-cobalt-mtm(url(p.msh), 1rad 1rad, "
"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1))";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kFilterProperty), filter, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_filter(filter, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FontSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string font = "inherit";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kFontProperty), font, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_font(font, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FontFamilySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string font_family = "Roboto";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kFontFamilyProperty), font_family, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_font_family(font_family, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FontSizeSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string font_size = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kFontSizeProperty), font_size, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_font_size(font_size, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FontStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string font_style = "italic";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kFontStyleProperty), font_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_font_style(font_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, FontWeightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string font_weight = "normal";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kFontWeightProperty), font_weight, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_font_weight(font_weight, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, HeightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string height = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kHeightProperty), height, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_height(height, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, LeftSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string left = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kLeftProperty), left, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_left(left, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, LineHeightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string line_height = "1.5em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kLineHeightProperty), line_height, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_line_height(line_height, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MarginSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string margin = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kMarginProperty), margin, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_margin(margin, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MarginBottomSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string margin_bottom = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMarginBottomProperty), margin_bottom, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_margin_bottom(margin_bottom, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MarginLeftSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string margin_left = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMarginLeftProperty), margin_left, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_margin_left(margin_left, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MarginRightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string margin_right = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMarginRightProperty), margin_right, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_margin_right(margin_right, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MarginTopSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string margin_top = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMarginTopProperty), margin_top, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_margin_top(margin_top, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MaxHeightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string max_height = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMaxHeightProperty), max_height, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_max_height(max_height, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MaxWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string max_width = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMaxWidthProperty), max_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_max_width(max_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MinHeightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string min_height = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMinHeightProperty), min_height, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_min_height(min_height, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, MinWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string min_width = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kMinWidthProperty), min_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_min_width(min_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OpacitySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string opacity = "0.5";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOpacityProperty), opacity, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_opacity(opacity, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OutlineSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string outline = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOutlineProperty), outline, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_outline(outline, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OutlineColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string outline_color = "#010203";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOutlineColorProperty), outline_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_outline_color(outline_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OutlineStyleSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string outline_style = "solid";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOutlineStyleProperty), outline_style, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_outline_style(outline_style, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OutlineWidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> width =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string outline_width = "10px";
MockMutationObserver observer;
width->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOutlineWidthProperty), outline_width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
width->set_outline_width(outline_width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OverflowSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string overflow = "visible";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOverflowProperty), overflow, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_overflow(overflow, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, OverflowWrapSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string overflow_wrap = "break-word";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kOverflowWrapProperty), overflow_wrap, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_overflow_wrap(overflow_wrap, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PaddingSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string padding = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kPaddingProperty), padding, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_padding(padding, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PaddingBottomSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string padding_bottom = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kPaddingBottomProperty),
padding_bottom, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_padding_bottom(padding_bottom, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PaddingLeftSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string padding_left = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kPaddingLeftProperty), padding_left, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_padding_left(padding_left, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PaddingRightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string padding_right = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kPaddingRightProperty), padding_right, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_padding_right(padding_right, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PaddingTopSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string padding_top = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kPaddingTopProperty), padding_top, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_padding_top(padding_top, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PositionSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string position = "static";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kPositionProperty), position, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_position(position, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, RightSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string right = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kRightProperty), right, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_right(right, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextAlignSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_align = "center";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTextAlignProperty), text_align, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_align(text_align, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextDecorationColorSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_decoration_color = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTextDecorationColorProperty),
text_decoration_color, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_decoration_color(text_decoration_color, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextDecorationLineSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_decoration_line = "line-through";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTextDecorationLineProperty),
text_decoration_line, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_decoration_line(text_decoration_line, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextIndentSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_indent = "4em";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTextIndentProperty), text_indent, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_indent(text_indent, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextOverflowSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_overflow = "ellipsis";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTextOverflowProperty), text_overflow, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_overflow(text_overflow, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextShadowSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_shadow = "inherit";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTextShadowProperty), text_shadow, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_shadow(text_shadow, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TextTransformSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string text_transform = "uppercase";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTextTransformProperty),
text_transform, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_text_transform(text_transform, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TopSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string top = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTopProperty), top, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_top(top, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransformSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transform = "scale(1.5)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTransformProperty), transform, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transform(transform, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransformOriginSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transform_origin = "20% 40%";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTransformOriginProperty),
transform_origin, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transform_origin(transform_origin, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransitionSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transition = "inherit";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTransitionProperty), transition, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transition(transition, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransitionDelaySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transition_delay = "2s";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTransitionDelayProperty),
transition_delay, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transition_delay(transition_delay, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransitionDurationSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transition_duration = "2s";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTransitionDurationProperty),
transition_duration, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transition_duration(transition_duration, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransitionPropertySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transition_property = "width";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kTransitionPropertyProperty),
transition_property, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transition_property(transition_property, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, TransitionTimingFunctionSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string transition_timing_function = "linear";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kTransitionTimingFunctionProperty),
transition_timing_function, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_transition_timing_function(transition_timing_function, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, VerticalAlignSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string vertical_align = "middle";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kVerticalAlignProperty),
vertical_align, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_vertical_align(vertical_align, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, VisibilitySetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string visibility = "hidden";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kVisibilityProperty), visibility, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_visibility(visibility, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, WhiteSpaceSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string white_space = "pre";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kWhiteSpaceProperty), white_space, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_white_space(white_space, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, WidthSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string width = "100px";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kWidthProperty), width, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_width(width, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, WordWrapSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string word_wrap = "break-word";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kWordWrapProperty), word_wrap, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_word_wrap(word_wrap, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, ZIndexSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string z_index = "-1";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser, ParsePropertyIntoDeclarationData(
GetPropertyName(kZIndexProperty), z_index, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_z_index(z_index, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, CSSTextSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string css_text = "font-size: 100px; color: #0047ab;";
EXPECT_CALL(css_parser, ParseStyleDeclarationList(css_text, _))
.WillOnce(Return(scoped_refptr<CSSDeclaredStyleData>()));
style->set_css_text(css_text, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, CSSTextSetterEmptyString) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
initial_style->SetPropertyValueAndImportance(
kDisplayProperty, KeywordValue::GetInline(), false);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
MockMutationObserver observer;
style->set_mutation_observer(&observer);
const std::string css_text = "";
EXPECT_CALL(css_parser, ParseStyleDeclarationList(css_text, _))
.WillOnce(Return(scoped_refptr<CSSDeclaredStyleData>()));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->set_css_text(css_text, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, CSSTextGetter) {
testing::MockCSSParser css_parser;
scoped_refptr<PercentageValue> background_size = new PercentageValue(0.50f);
scoped_refptr<LengthValue> bottom = new LengthValue(16, kPixelsUnit);
scoped_refptr<CSSDeclaredStyleData> style_data = new CSSDeclaredStyleData();
style_data->SetPropertyValueAndImportance(kBackgroundSizeProperty,
background_size, false);
style_data->SetPropertyValueAndImportance(kBottomProperty, bottom, true);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(style_data, &css_parser);
EXPECT_EQ(style->css_text(NULL),
"background-size: 50%; bottom: 16px !important;");
}
// TODO: Add GetPropertyValue tests, property getter tests and tests
// that checking if the attributes' setter and the getter are consistent when
// fully support converting PropertyValue to std::string.
TEST(CSSDeclaredStyleDeclarationTest, PropertyValueSetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundProperty), background, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->SetPropertyValue(GetPropertyName(kBackgroundProperty), background,
NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PropertyValueSetterTwice) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundProperty), background, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->SetPropertyValue(GetPropertyName(kBackgroundProperty), background,
NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PropertySetterWithTwoValues) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundProperty), background, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->SetProperty(GetPropertyName(kBackgroundProperty), background, NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PropertySetterWithThreeValues) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
const std::string background = "rgba(0, 0, 0, .8)";
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kBackgroundProperty), background, _, _));
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
style->SetProperty(GetPropertyName(kBackgroundProperty), background,
std::string(), NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, PropertyValueGetter) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
initial_style->SetPropertyValueAndImportance(
kTextAlignProperty, KeywordValue::GetCenter(), false);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
EXPECT_EQ(style->GetPropertyValue(GetPropertyName(kTextAlignProperty)),
"center");
}
TEST(CSSDeclaredStyleDeclarationTest,
UnknownDeclaredStylePropertyValueShouldBeEmpty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
EXPECT_EQ(style->GetPropertyValue("cobalt_cobalt_cobalt"), "");
}
TEST(CSSDeclaredStyleDeclarationTest, RemoveProperty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
initial_style->SetPropertyValueAndImportance(
kDisplayProperty, KeywordValue::GetInline(), false);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
MockMutationObserver observer;
style->set_mutation_observer(&observer);
EXPECT_CALL(observer, OnCSSMutation()).Times(1);
EXPECT_CALL(css_parser,
ParsePropertyIntoDeclarationData(
GetPropertyName(kDisplayProperty), std::string(""), _, _));
style->RemoveProperty(GetPropertyName(kDisplayProperty), NULL);
}
TEST(CSSDeclaredStyleDeclarationTest, LengthAttributeGetterEmpty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
EXPECT_EQ(style->length(), 0);
}
TEST(CSSDeclaredStyleDeclarationTest, LengthAttributeGetterNotEmpty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
initial_style->SetPropertyValueAndImportance(
kDisplayProperty, KeywordValue::GetInline(), false);
initial_style->SetPropertyValueAndImportance(
kTextAlignProperty, KeywordValue::GetCenter(), false);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
EXPECT_EQ(style->length(), 2);
}
TEST(CSSDeclaredStyleDeclarationTest, ItemGetterEmpty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(&css_parser);
EXPECT_FALSE(style->Item(0));
}
TEST(CSSDeclaredStyleDeclarationTest, ItemGetterNotEmpty) {
testing::MockCSSParser css_parser;
scoped_refptr<CSSDeclaredStyleData> initial_style =
new CSSDeclaredStyleData();
initial_style->SetPropertyValueAndImportance(
kDisplayProperty, KeywordValue::GetInline(), false);
initial_style->SetPropertyValueAndImportance(
kTextAlignProperty, KeywordValue::GetCenter(), false);
scoped_refptr<CSSDeclaredStyleDeclaration> style =
new CSSDeclaredStyleDeclaration(initial_style, &css_parser);
EXPECT_TRUE(style->Item(0));
EXPECT_TRUE(style->Item(1));
EXPECT_FALSE(style->Item(2));
// The order is not important, as long as declared properties are represented.
if (style->Item(0).value() == GetPropertyName(kDisplayProperty)) {
EXPECT_EQ(style->Item(1).value(), GetPropertyName(kTextAlignProperty));
} else {
EXPECT_EQ(style->Item(0).value(), GetPropertyName(kTextAlignProperty));
EXPECT_EQ(style->Item(1).value(), GetPropertyName(kDisplayProperty));
}
}
} // namespace cssom
} // namespace cobalt