| Index: third_party/WebKit/Source/core/css/cssom/CSSTokenStreamValueTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/cssom/CSSTokenStreamValueTest.cpp b/third_party/WebKit/Source/core/css/cssom/CSSTokenStreamValueTest.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4d7b1155e355ee5dac951caf094f1ade761bb953
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/css/cssom/CSSTokenStreamValueTest.cpp
|
| @@ -0,0 +1,111 @@
|
| +// 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/cssom/CSSTokenStreamValue.h"
|
| +
|
| +#include "core/css/cssom/CSSStyleVariableReferenceValue.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace blink {
|
| +
|
| +namespace {
|
| +
|
| +StringOrCSSVariableReferenceValue getStringOrCSSVariableReferenceValue(String str)
|
| +{
|
| + StringOrCSSVariableReferenceValue temp;
|
| + temp.setString(str);
|
| + return temp;
|
| +}
|
| +
|
| +StringOrCSSVariableReferenceValue getStringOrCSSVariableReferenceValue(CSSStyleVariableReferenceValue ref)
|
| +{
|
| + StringOrCSSVariableReferenceValue temp;
|
| + temp.setCSSVariableReferenceValue(ref);
|
| + return temp;
|
| +}
|
| +
|
| +CSSTokenStreamValue* tokenStreamValueFromString(String str)
|
| +{
|
| + HeapVector<StringOrCSSVariableReferenceValue> listOfStrings;
|
| + listOfStrings.append(getStringOrCSSVariableReferenceValue(str));
|
| + return CSSTokenStreamValue::create(listOfStrings);
|
| +}
|
| +
|
| +CSSTokenStreamValue* tokenStreamValueFromCSSVariableReferenceValue(CSSStyleVariableReferenceValue* ref)
|
| +{
|
| + HeapVector<StringOrCSSVariableReferenceValue> listOfReferences;
|
| + listOfReferences.append(getStringOrCSSVariableReferenceValue(ref));
|
| + return CSSTokenStreamValue::create(listOfReferences);
|
| +}
|
| +
|
| +TEST(CSSTokenStreamValueTest, EmptyList)
|
| +{
|
| + HeapVector<StringOrCSSVariableReferenceValue> listOfReferences;
|
| +
|
| + CSSTokenStreamValue* tokenStreamValue = CSSTokenStreamValue::create(listOfReferences);
|
| +
|
| + EXPECT_EQ(tokenStreamValue->size(), 0UL);
|
| +}
|
| +
|
| +TEST(CSSTokenStreamValueTest, ListOfString)
|
| +{
|
| + CSSTokenStreamValue* tokenStreamValue = tokenStreamValueFromString("Str");
|
| +
|
| + EXPECT_EQ(tokenStreamValue->size(), 1UL);
|
| +
|
| + EXPECT_TRUE(tokenStreamValue->referenceAtIndex(0).isString());
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(0).isNull());
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(0).isCSSVariableReferenceValue());
|
| +
|
| + EXPECT_EQ(tokenStreamValue->referenceAtIndex(0).getAsString(), "Str");
|
| +}
|
| +
|
| +TEST(CSSTokenStreamValueTest, ListOfCSSVariableReferenceValue)
|
| +{
|
| + CSSStyleVariableReferenceValue* ref = CSSStyleVariableReferenceValue::create("Ref", tokenStreamValueFromString("Str"));
|
| +
|
| + CSSTokenStreamValue* tokenStreamValue = tokenStreamValueFromCSSVariableReferenceValue(ref);
|
| +
|
| + EXPECT_EQ(tokenStreamValue->size(), 1UL);
|
| +
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(0).isString());
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(0).isNull());
|
| + EXPECT_TRUE(tokenStreamValue->referenceAtIndex(0).isCSSVariableReferenceValue());
|
| +
|
| + EXPECT_EQ(tokenStreamValue->referenceAtIndex(0).getAsCSSVariableReferenceValue(), ref);
|
| +}
|
| +
|
| +TEST(CSSTokenStreamValueTest, MixedContents)
|
| +{
|
| + HeapVector<StringOrCSSVariableReferenceValue> listOfReferences;
|
| +
|
| + StringOrCSSVariableReferenceValue x = getStringOrCSSVariableReferenceValue("Str");
|
| +
|
| + CSSStyleVariableReferenceValue* ref = CSSStyleVariableReferenceValue::create("Ref", tokenStreamValueFromString("Str"));
|
| + StringOrCSSVariableReferenceValue y = getStringOrCSSVariableReferenceValue(ref);
|
| +
|
| + StringOrCSSVariableReferenceValue z;
|
| +
|
| + listOfReferences.append(x);
|
| + listOfReferences.append(y);
|
| + listOfReferences.append(z);
|
| +
|
| + CSSTokenStreamValue* tokenStreamValue = CSSTokenStreamValue::create(listOfReferences);
|
| +
|
| + EXPECT_EQ(tokenStreamValue->size(), listOfReferences.size());
|
| +
|
| + EXPECT_TRUE(tokenStreamValue->referenceAtIndex(0).isString());
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(0).isCSSVariableReferenceValue());
|
| + EXPECT_EQ(tokenStreamValue->referenceAtIndex(0).getAsString(), "1234");
|
| +
|
| + EXPECT_TRUE(tokenStreamValue->referenceAtIndex(1).isCSSVariableReferenceValue());
|
| + EXPECT_FALSE(tokenStreamValue->referenceAtIndex(1).isString());
|
| + EXPECT_EQ(tokenStreamValue->referenceAtIndex(1).getAsCSSVariableReferenceValue(), ref);
|
| +
|
| + EXPECT_TRUE(tokenStreamValue->referenceAtIndex(2).isNull());
|
| +y
|
| +
|
| +} // namespace
|
| +
|
| +} // namespace blink
|
|
|