| OLD | NEW | 
|    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 "core/svg/SVGPathParser.h" |    5 #include "core/svg/SVGPathParser.h" | 
|    6  |    6  | 
|    7 #include "core/svg/SVGPathStringBuilder.h" |    7 #include "core/svg/SVGPathStringBuilder.h" | 
|    8 #include "core/svg/SVGPathStringSource.h" |    8 #include "core/svg/SVGPathStringSource.h" | 
|    9 #include "testing/gtest/include/gtest/gtest.h" |    9 #include "testing/gtest/include/gtest/gtest.h" | 
|   10  |   10  | 
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  134     VALID("M1,1T2,3 4,5", "M 1 1 T 2 3 T 4 5"); |  134     VALID("M1,1T2,3 4,5", "M 1 1 T 2 3 T 4 5"); | 
|  135     MALFORMED("M1,1a2,3,4,0,0,5,6 7", "M 1 1 a 2 3 4 0 0 5 6"); |  135     MALFORMED("M1,1a2,3,4,0,0,5,6 7", "M 1 1 a 2 3 4 0 0 5 6"); | 
|  136     VALID("M1,1a2,3,4,0,0,5,6 7,8,9,0,0,10,11", "M 1 1 a 2 3 4 0 0 5 6 a 7 8 9 0
      0 10 11"); |  136     VALID("M1,1a2,3,4,0,0,5,6 7,8,9,0,0,10,11", "M 1 1 a 2 3 4 0 0 5 6 a 7 8 9 0
      0 10 11"); | 
|  137     MALFORMED("M1,1A2,3,4,0,0,5,6 7", "M 1 1 A 2 3 4 0 0 5 6"); |  137     MALFORMED("M1,1A2,3,4,0,0,5,6 7", "M 1 1 A 2 3 4 0 0 5 6"); | 
|  138     VALID("M1,1A2,3,4,0,0,5,6 7,8,9,0,0,10,11", "M 1 1 A 2 3 4 0 0 5 6 A 7 8 9 0
      0 10 11"); |  138     VALID("M1,1A2,3,4,0,0,5,6 7,8,9,0,0,10,11", "M 1 1 A 2 3 4 0 0 5 6 A 7 8 9 0
      0 10 11"); | 
|  139 } |  139 } | 
|  140  |  140  | 
|  141 #undef MALFORMED |  141 #undef MALFORMED | 
|  142 #undef VALID |  142 #undef VALID | 
|  143  |  143  | 
 |  144 SVGParsingError parsePathWithError(const char* input) | 
 |  145 { | 
 |  146     String inputString(input); | 
 |  147     SVGPathStringSource source(inputString); | 
 |  148     SVGPathStringBuilder builder; | 
 |  149     SVGPathParser parser(&source, &builder); | 
 |  150     parser.parsePathDataFromSource(); | 
 |  151     return source.parseError(); | 
 |  152 } | 
 |  153  | 
 |  154 #define EXPECT_ERROR(input, expectedLocus, expectedError)      \ | 
 |  155     {                                                          \ | 
 |  156         SVGParsingError error = parsePathWithError(input);     \ | 
 |  157         EXPECT_EQ(expectedError, error.status());              \ | 
 |  158         EXPECT_TRUE(error.hasLocus());                         \ | 
 |  159         EXPECT_EQ(expectedLocus, error.locus());               \ | 
 |  160     } | 
 |  161  | 
 |  162 TEST(SVGPathParserTest, ErrorReporting) | 
 |  163 { | 
 |  164     // Missing initial moveto. | 
 |  165     EXPECT_ERROR(" 10 10", 1u, SVGParseStatus::ExpectedMoveToCommand); | 
 |  166     EXPECT_ERROR("L 10 10", 0u, SVGParseStatus::ExpectedMoveToCommand); | 
 |  167     // Invalid command letter. | 
 |  168     EXPECT_ERROR("M 10 10 #", 8u, SVGParseStatus::ExpectedPathCommand); | 
 |  169     EXPECT_ERROR("M 10 10 E 100 100", 8u, SVGParseStatus::ExpectedPathCommand); | 
 |  170     // Invalid number. | 
 |  171     EXPECT_ERROR("M 10 10 L100 ", 13u, SVGParseStatus::ExpectedNumber); | 
 |  172     EXPECT_ERROR("M 10 10 L100 #", 13u, SVGParseStatus::ExpectedNumber); | 
 |  173     EXPECT_ERROR("M 10 10 L100#100", 12u, SVGParseStatus::ExpectedNumber); | 
 |  174     EXPECT_ERROR("M0,0 A#,10 0 0,0 20,20", 6u, SVGParseStatus::ExpectedNumber); | 
 |  175     EXPECT_ERROR("M0,0 A10,# 0 0,0 20,20", 9u, SVGParseStatus::ExpectedNumber); | 
 |  176     EXPECT_ERROR("M0,0 A10,10 # 0,0 20,20", 12u, SVGParseStatus::ExpectedNumber)
     ; | 
 |  177     EXPECT_ERROR("M0,0 A10,10 0 0,0 #,20", 18u, SVGParseStatus::ExpectedNumber); | 
 |  178     EXPECT_ERROR("M0,0 A10,10 0 0,0 20,#", 21u, SVGParseStatus::ExpectedNumber); | 
 |  179     // Invalid arc-flag. | 
 |  180     EXPECT_ERROR("M0,0 A10,10 0 #,0 20,20", 14u, SVGParseStatus::ExpectedArcFlag
     ); | 
 |  181     EXPECT_ERROR("M0,0 A10,10 0 0,# 20,20", 16u, SVGParseStatus::ExpectedArcFlag
     ); | 
 |  182     EXPECT_ERROR("M0,0 A10,10 0 0,2 20,20", 16u, SVGParseStatus::ExpectedArcFlag
     ); | 
 |  183 } | 
 |  184  | 
 |  185 #undef EXPECT_ERROR | 
 |  186  | 
|  144 } // namespace |  187 } // namespace | 
|  145  |  188  | 
|  146 } // namespace blink |  189 } // namespace blink | 
| OLD | NEW |