| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library engine.scanner_test; | 5 library engine.scanner_test; |
| 6 | 6 |
| 7 import 'package:analyzer/src/generated/error.dart'; | 7 import 'package:analyzer/src/generated/error.dart'; |
| 8 import 'package:analyzer/src/generated/scanner.dart'; | 8 import 'package:analyzer/src/generated/scanner.dart'; |
| 9 import 'package:analyzer/src/generated/source.dart'; | 9 import 'package:analyzer/src/generated/source.dart'; |
| 10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
| 11 | 11 |
| 12 import '../reflective_tests.dart'; | 12 import '../reflective_tests.dart'; |
| 13 import 'test_support.dart'; | 13 import 'test_support.dart'; |
| 14 | 14 |
| 15 main() { | 15 main() { |
| 16 groupSep = ' | '; | 16 groupSep = ' | '; |
| 17 runReflectiveTests(CharSequenceReaderTest); | 17 runReflectiveTests(CharSequenceReaderTest); |
| 18 runReflectiveTests(KeywordStateTest); | 18 runReflectiveTests(KeywordStateTest); |
| 19 runReflectiveTests(ScannerTest); | 19 runReflectiveTests(ScannerTest); |
| 20 runReflectiveTests(TokenTypeTest); | 20 runReflectiveTests(TokenTypeTest); |
| 21 } | 21 } |
| 22 | 22 |
| 23 @ReflectiveTestCase() | 23 @reflectiveTest |
| 24 class CharSequenceReaderTest { | 24 class CharSequenceReaderTest { |
| 25 void test_advance() { | 25 void test_advance() { |
| 26 CharSequenceReader reader = new CharSequenceReader("x"); | 26 CharSequenceReader reader = new CharSequenceReader("x"); |
| 27 expect(reader.advance(), 0x78); | 27 expect(reader.advance(), 0x78); |
| 28 expect(reader.advance(), -1); | 28 expect(reader.advance(), -1); |
| 29 expect(reader.advance(), -1); | 29 expect(reader.advance(), -1); |
| 30 } | 30 } |
| 31 | 31 |
| 32 void test_creation() { | 32 void test_creation() { |
| 33 expect(new CharSequenceReader("x"), isNotNull); | 33 expect(new CharSequenceReader("x"), isNotNull); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 } | 117 } |
| 118 | 118 |
| 119 void test_setOffset() { | 119 void test_setOffset() { |
| 120 CharSequenceReader baseReader = new CharSequenceReader("xyzzy"); | 120 CharSequenceReader baseReader = new CharSequenceReader("xyzzy"); |
| 121 CharacterRangeReader reader = new CharacterRangeReader(baseReader, 1, 4); | 121 CharacterRangeReader reader = new CharacterRangeReader(baseReader, 1, 4); |
| 122 reader.offset = 2; | 122 reader.offset = 2; |
| 123 expect(reader.offset, 2); | 123 expect(reader.offset, 2); |
| 124 } | 124 } |
| 125 } | 125 } |
| 126 | 126 |
| 127 @ReflectiveTestCase() | 127 @reflectiveTest |
| 128 class KeywordStateTest { | 128 class KeywordStateTest { |
| 129 void test_KeywordState() { | 129 void test_KeywordState() { |
| 130 // | 130 // |
| 131 // Generate the test data to be scanned. | 131 // Generate the test data to be scanned. |
| 132 // | 132 // |
| 133 List<Keyword> keywords = Keyword.values; | 133 List<Keyword> keywords = Keyword.values; |
| 134 int keywordCount = keywords.length; | 134 int keywordCount = keywords.length; |
| 135 List<String> textToTest = new List<String>(keywordCount * 3); | 135 List<String> textToTest = new List<String>(keywordCount * 3); |
| 136 for (int i = 0; i < keywordCount; i++) { | 136 for (int i = 0; i < keywordCount; i++) { |
| 137 String syntax = keywords[i].syntax; | 137 String syntax = keywords[i].syntax; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 161 // keyword + "x" | 161 // keyword + "x" |
| 162 expect(state, isNull); | 162 expect(state, isNull); |
| 163 } else { | 163 } else { |
| 164 // keyword.substring(0, keyword.length() - 1) | 164 // keyword.substring(0, keyword.length() - 1) |
| 165 expect(state, isNotNull); | 165 expect(state, isNotNull); |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 | 170 |
| 171 @ReflectiveTestCase() | 171 @reflectiveTest |
| 172 class ScannerTest { | 172 class ScannerTest { |
| 173 void fail_incomplete_string_interpolation() { | 173 void fail_incomplete_string_interpolation() { |
| 174 // https://code.google.com/p/dart/issues/detail?id=18073 | 174 // https://code.google.com/p/dart/issues/detail?id=18073 |
| 175 _assertErrorAndTokens( | 175 _assertErrorAndTokens( |
| 176 ScannerErrorCode.UNTERMINATED_STRING_LITERAL, | 176 ScannerErrorCode.UNTERMINATED_STRING_LITERAL, |
| 177 9, | 177 9, |
| 178 "\"foo \${bar", | 178 "\"foo \${bar", |
| 179 [ | 179 [ |
| 180 new StringToken(TokenType.STRING, "\"foo ", 0), | 180 new StringToken(TokenType.STRING, "\"foo ", 0), |
| 181 new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 5)
, | 181 new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 5)
, |
| (...skipping 1152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 buffer.write(", '"); | 1334 buffer.write(", '"); |
| 1335 buffer.write(token.lexeme); | 1335 buffer.write(token.lexeme); |
| 1336 buffer.write("', "); | 1336 buffer.write("', "); |
| 1337 buffer.write(token.offset); | 1337 buffer.write(token.offset); |
| 1338 buffer.write(", "); | 1338 buffer.write(", "); |
| 1339 buffer.write(token.length); | 1339 buffer.write(token.length); |
| 1340 buffer.write("]"); | 1340 buffer.write("]"); |
| 1341 } | 1341 } |
| 1342 } | 1342 } |
| 1343 | 1343 |
| 1344 @ReflectiveTestCase() | 1344 @reflectiveTest |
| 1345 class TokenTypeTest extends EngineTestCase { | 1345 class TokenTypeTest extends EngineTestCase { |
| 1346 void test_isOperator() { | 1346 void test_isOperator() { |
| 1347 expect(TokenType.AMPERSAND.isOperator, isTrue); | 1347 expect(TokenType.AMPERSAND.isOperator, isTrue); |
| 1348 expect(TokenType.AMPERSAND_AMPERSAND.isOperator, isTrue); | 1348 expect(TokenType.AMPERSAND_AMPERSAND.isOperator, isTrue); |
| 1349 expect(TokenType.AMPERSAND_EQ.isOperator, isTrue); | 1349 expect(TokenType.AMPERSAND_EQ.isOperator, isTrue); |
| 1350 expect(TokenType.BANG.isOperator, isTrue); | 1350 expect(TokenType.BANG.isOperator, isTrue); |
| 1351 expect(TokenType.BANG_EQ.isOperator, isTrue); | 1351 expect(TokenType.BANG_EQ.isOperator, isTrue); |
| 1352 expect(TokenType.BAR.isOperator, isTrue); | 1352 expect(TokenType.BAR.isOperator, isTrue); |
| 1353 expect(TokenType.BAR_BAR.isOperator, isTrue); | 1353 expect(TokenType.BAR_BAR.isOperator, isTrue); |
| 1354 expect(TokenType.BAR_EQ.isOperator, isTrue); | 1354 expect(TokenType.BAR_EQ.isOperator, isTrue); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1401 expect(TokenType.LT_LT.isUserDefinableOperator, isTrue); | 1401 expect(TokenType.LT_LT.isUserDefinableOperator, isTrue); |
| 1402 expect(TokenType.MINUS.isUserDefinableOperator, isTrue); | 1402 expect(TokenType.MINUS.isUserDefinableOperator, isTrue); |
| 1403 expect(TokenType.PERCENT.isUserDefinableOperator, isTrue); | 1403 expect(TokenType.PERCENT.isUserDefinableOperator, isTrue); |
| 1404 expect(TokenType.PLUS.isUserDefinableOperator, isTrue); | 1404 expect(TokenType.PLUS.isUserDefinableOperator, isTrue); |
| 1405 expect(TokenType.SLASH.isUserDefinableOperator, isTrue); | 1405 expect(TokenType.SLASH.isUserDefinableOperator, isTrue); |
| 1406 expect(TokenType.STAR.isUserDefinableOperator, isTrue); | 1406 expect(TokenType.STAR.isUserDefinableOperator, isTrue); |
| 1407 expect(TokenType.TILDE.isUserDefinableOperator, isTrue); | 1407 expect(TokenType.TILDE.isUserDefinableOperator, isTrue); |
| 1408 expect(TokenType.TILDE_SLASH.isUserDefinableOperator, isTrue); | 1408 expect(TokenType.TILDE_SLASH.isUserDefinableOperator, isTrue); |
| 1409 } | 1409 } |
| 1410 } | 1410 } |
| OLD | NEW |