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 |