Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: Source/core/animation/SVGStrokeDasharrayStyleInterpolationTest.cpp

Issue 975733002: Use Length for the stroke-dasharray property in SVGLayoutStyle (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add test for style-change responsive-ness. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/animation/SVGStrokeDasharrayStyleInterpolation.h" 6 #include "core/animation/SVGStrokeDasharrayStyleInterpolation.h"
7 7
8 #include "core/css/CSSPrimitiveValue.h" 8 #include "core/css/CSSPrimitiveValue.h"
9 #include "core/css/CSSValueList.h" 9 #include "core/css/CSSValueList.h"
10 10
11 #include <gtest/gtest.h> 11 #include <gtest/gtest.h>
12 12
13 namespace blink { 13 namespace blink {
14 14
15 class AnimationSVGStrokeDasharrayStyleInterpolationTest : public ::testing::Test { 15 class AnimationSVGStrokeDasharrayStyleInterpolationTest : public ::testing::Test {
16 protected: 16 protected:
17 static PassRefPtrWillBeRawPtr<CSSValueList> interpolableValueToStrokeDasharr ay(const InterpolableValue& value, const Vector<CSSPrimitiveValue::UnitType>& ty pes) 17 static PassRefPtrWillBeRawPtr<CSSValueList> interpolableValueToStrokeDasharr ay(const InterpolableValue& value)
18 { 18 {
19 return SVGStrokeDasharrayStyleInterpolation::interpolableValueToStrokeDa sharray(value, types); 19 return SVGStrokeDasharrayStyleInterpolation::interpolableValueToStrokeDa sharray(value);
20 } 20 }
21 21
22 static PassRefPtrWillBeRawPtr<CSSValueList> roundTrip(const CSSValue& value, const Vector<CSSPrimitiveValue::UnitType>& types) 22 static PassRefPtrWillBeRawPtr<CSSValueList> roundTrip(const CSSValue& value)
23 { 23 {
24 RefPtrWillBeRawPtr<SVGStrokeDasharrayStyleInterpolation> interpolation = SVGStrokeDasharrayStyleInterpolation::maybeCreate(value, value, CSSPropertyStro keDasharray); 24 RefPtrWillBeRawPtr<SVGStrokeDasharrayStyleInterpolation> interpolation = SVGStrokeDasharrayStyleInterpolation::maybeCreate(value, value, CSSPropertyStro keDasharray);
25 ASSERT(interpolation); 25 ASSERT(interpolation);
26 return SVGStrokeDasharrayStyleInterpolation::interpolableValueToStrokeDa sharray(*interpolation->m_start, types); 26 return SVGStrokeDasharrayStyleInterpolation::interpolableValueToStrokeDa sharray(*interpolation->m_start);
27 } 27 }
28 28
29 static void testPrimitiveValue(const CSSValue& cssValue, double value, CSSPr imitiveValue::UnitType unitType) 29 static void testPrimitiveValue(const CSSValue& cssValue, double value, CSSPr imitiveValue::UnitType unitType)
30 { 30 {
31 EXPECT_TRUE(cssValue.isPrimitiveValue()); 31 EXPECT_TRUE(cssValue.isPrimitiveValue());
32 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(cssValue); 32 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(cssValue);
33 33
34 EXPECT_EQ(primitiveValue.primitiveType(), unitType); 34 EXPECT_EQ(primitiveValue.primitiveType(), unitType);
35 EXPECT_EQ(primitiveValue.getDoubleValue(), value); 35 EXPECT_EQ(primitiveValue.getDoubleValue(), value);
36 } 36 }
37 }; 37 };
38 38
39 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, Zero) 39 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, Zero)
40 { 40 {
41 RefPtrWillBeRawPtr<CSSValueList> start = CSSValueList::createCommaSeparated( ); 41 RefPtrWillBeRawPtr<CSSValueList> start = CSSValueList::createCommaSeparated( );
42 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PERCENTAGE )); 42 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PERCENTAGE ));
43 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_EMS)); 43 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_EMS));
44 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX)); 44 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX));
45 45
46 Vector<CSSPrimitiveValue::UnitType> types(3); 46 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start);
47 types[0] = CSSPrimitiveValue::CSS_PERCENTAGE;
48 types[1] = CSSPrimitiveValue::CSS_EMS;
49 types[2] = CSSPrimitiveValue::CSS_PX;
50 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start, types);
51 EXPECT_EQ(value->length(), 3u); 47 EXPECT_EQ(value->length(), 3u);
52 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PERCENTAGE); 48 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PERCENTAGE);
53 testPrimitiveValue(*value->item(1), 0, CSSPrimitiveValue::CSS_EMS); 49 testPrimitiveValue(*value->item(1), 0, CSSPrimitiveValue::CSS_EMS);
54 testPrimitiveValue(*value->item(2), 0, CSSPrimitiveValue::CSS_PX); 50 testPrimitiveValue(*value->item(2), 0, CSSPrimitiveValue::CSS_PX);
55 } 51 }
56 52
57 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, SingleUnit) 53 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, SingleUnit)
58 { 54 {
59 RefPtrWillBeRawPtr<CSSValueList> start = CSSValueList::createCommaSeparated( ); 55 RefPtrWillBeRawPtr<CSSValueList> start = CSSValueList::createCommaSeparated( );
60 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX)); 56 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX));
61 start->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_EMS)); 57 start->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_EMS));
62 start->append(CSSPrimitiveValue::create(-20, CSSPrimitiveValue::CSS_EMS)); 58 start->append(CSSPrimitiveValue::create(-20, CSSPrimitiveValue::CSS_EMS));
63 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PERCENTAGE )); 59 start->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PERCENTAGE ));
64 start->append(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS_EMS)); 60 start->append(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS_EMS));
65 61
66 Vector<CSSPrimitiveValue::UnitType> types(5); 62 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start);
67 types[0] = CSSPrimitiveValue::CSS_PX;
68 types[1] = CSSPrimitiveValue::CSS_EMS;
69 types[2] = CSSPrimitiveValue::CSS_EMS;
70 types[3] = CSSPrimitiveValue::CSS_PERCENTAGE;
71 types[4] = CSSPrimitiveValue::CSS_EMS;
72 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start, types);
73 EXPECT_EQ(value->length(), 5u); 63 EXPECT_EQ(value->length(), 5u);
74 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PX); 64 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PX);
75 testPrimitiveValue(*value->item(1), 10, CSSPrimitiveValue::CSS_EMS); 65 testPrimitiveValue(*value->item(1), 10, CSSPrimitiveValue::CSS_EMS);
76 testPrimitiveValue(*value->item(2), 0, CSSPrimitiveValue::CSS_EMS); 66 testPrimitiveValue(*value->item(2), 0, CSSPrimitiveValue::CSS_EMS);
77 testPrimitiveValue(*value->item(3), 0, CSSPrimitiveValue::CSS_PERCENTAGE); 67 testPrimitiveValue(*value->item(3), 0, CSSPrimitiveValue::CSS_PERCENTAGE);
78 testPrimitiveValue(*value->item(4), 30, CSSPrimitiveValue::CSS_EMS); 68 testPrimitiveValue(*value->item(4), 30, CSSPrimitiveValue::CSS_EMS);
79 } 69 }
80 70
81 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, None) 71 TEST_F(AnimationSVGStrokeDasharrayStyleInterpolationTest, None)
82 { 72 {
83 RefPtrWillBeRawPtr<CSSPrimitiveValue> start = CSSPrimitiveValue::createIdent ifier(CSSValueNone); 73 RefPtrWillBeRawPtr<CSSPrimitiveValue> start = CSSPrimitiveValue::createIdent ifier(CSSValueNone);
84 74
85 Vector<CSSPrimitiveValue::UnitType> types(1); 75 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start);
86 types[0] = CSSPrimitiveValue::CSS_PX;
87 RefPtrWillBeRawPtr<CSSValueList> value = roundTrip(*start, types);
88 EXPECT_EQ(value->length(), 1u); 76 EXPECT_EQ(value->length(), 1u);
89 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PX); 77 testPrimitiveValue(*value->item(0), 0, CSSPrimitiveValue::CSS_PX);
90 } 78 }
91 79
92 } 80 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698