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

Side by Side Diff: tests/corelib_strong/uri_test.dart

Issue 2763823002: Move spaces from before comments to within comments (Closed)
Patch Set: Fix comments Created 3 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 uriTest; 5 library uriTest;
6 6
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 import 'dart:convert'; 8 import 'dart:convert';
9 9
10 testUri(String uriText, bool isAbsolute) { 10 testUri(String uriText, bool isAbsolute) {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 void testInvalidUrls() { 207 void testInvalidUrls() {
208 void checkInvalid(uri) { 208 void checkInvalid(uri) {
209 try { 209 try {
210 var result = Uri.parse(uri); 210 var result = Uri.parse(uri);
211 Expect.fail("Invalid URI `$uri` parsed to $result\n" + dump(result)); 211 Expect.fail("Invalid URI `$uri` parsed to $result\n" + dump(result));
212 } on FormatException { 212 } on FormatException {
213 // Success. 213 // Success.
214 } 214 }
215 } 215 }
216 checkInvalid("s%41://x.x/"); // No escapes in scheme, 216 checkInvalid("s%41://x.x/"); // No escapes in scheme,
217 // and no colon before slash in path. 217 // and no colon before slash in path.
218 checkInvalid("1a://x.x/"); // Scheme must start with letter, 218 checkInvalid("1a://x.x/"); // Scheme must start with letter,
219 // and no colon before slash in path. 219 // and no colon before slash in path.
220 checkInvalid(".a://x.x/"); // Scheme must start with letter, 220 checkInvalid(".a://x.x/"); // Scheme must start with letter,
221 // and no colon before slash in path. 221 // and no colon before slash in path.
222 checkInvalid("_:"); // Character not valid in scheme, 222 checkInvalid("_:"); // Character not valid in scheme,
223 // and no colon before slash in path. 223 // and no colon before slash in path.
224 checkInvalid(":"); // Scheme must start with letter, 224 checkInvalid(":"); // Scheme must start with letter,
225 // and no colon before slash in path. 225 // and no colon before slash in path.
226 226
227 void checkInvalidReplaced(uri, invalid, replacement) { 227 void checkInvalidReplaced(uri, invalid, replacement) {
228 var source = uri.replaceAll('{}', invalid); 228 var source = uri.replaceAll('{}', invalid);
229 var expected = uri.replaceAll('{}', replacement); 229 var expected = uri.replaceAll('{}', replacement);
230 var result = Uri.parse(source); 230 var result = Uri.parse(source);
231 Expect.equals(expected, "$result", "Source: $source\n${dump(result)}"); 231 Expect.equals(expected, "$result", "Source: $source\n${dump(result)}");
232 } 232 }
233 233
234 // Regression test for http://dartbug.com/16081 234 // Regression test for http://dartbug.com/16081
235 checkInvalidReplaced("http://www.example.org/red%09ros{}#red)", 235 checkInvalidReplaced("http://www.example.org/red%09ros{}#red)",
236 "\u00e9", "%C3%A9"); 236 "\u00e9", "%C3%A9");
237 checkInvalidReplaced("http://r{}sum\{}.example.org", "\u00E9", "%C3%A9"); 237 checkInvalidReplaced("http://r{}sum\{}.example.org", "\u00E9", "%C3%A9");
238 238
239 // Invalid characters. The characters must be rejected, even if normalizing 239 // Invalid characters. The characters must be rejected, even if normalizing
240 // the input would cause them to be valid (normalization happens after 240 // the input would cause them to be valid (normalization happens after
241 // validation). 241 // validation).
242 var invalidCharsAndReplacements = [ 242 var invalidCharsAndReplacements = [
243 "\xe7", "%C3%A7", // Arbitrary non-ASCII letter 243 "\xe7", "%C3%A7", // Arbitrary non-ASCII letter
244 " ", "%20", // Space, not allowed anywhere. 244 " ", "%20", // Space, not allowed anywhere.
245 '"', "%22", // Quote, not allowed anywhere 245 '"', "%22", // Quote, not allowed anywhere
246 "<>", "%3C%3E", // Less/greater-than, not allowed anywhere. 246 "<>", "%3C%3E", // Less/greater-than, not allowed anywhere.
247 "\x7f", "%7F", // DEL, not allowed anywhere 247 "\x7f", "%7F", // DEL, not allowed anywhere
248 "\xdf", "%C3%9F", // German lower-case scharf-S. 248 "\xdf", "%C3%9F", // German lower-case scharf-S.
249 // Becomes ASCII when upper-cased. 249 // Becomes ASCII when upper-cased.
250 "\u0130", "%C4%B0", // Latin capital dotted I, 250 "\u0130", "%C4%B0", // Latin capital dotted I,
251 // becomes ASCII lower-case in Turkish. 251 // becomes ASCII lower-case in Turkish.
sra1 2017/03/21 03:39:29 fix?
252 "%\uFB03", "%25%EF%AC%83", // % + Ligature ffi, 252 "%\uFB03", "%25%EF%AC%83", // % + Ligature ffi,
253 // becomes ASCII when upper-cased, 253 // becomes ASCII when upper-cased,
254 // should not be read as "%FFI". 254 // should not be read as "%FFI".
255 "\u212a", "%E2%84%AA", // Kelvin sign. Becomes ASCII when lower-cased. 255 "\u212a", "%E2%84%AA", // Kelvin sign. Becomes ASCII when lower-cased.
256 "%1g", "%251g", // Invalid escape. 256 "%1g", "%251g", // Invalid escape.
257 "\u{10000}", "%F0%90%80%80", // Non-BMP character as surrogate pair. 257 "\u{10000}", "%F0%90%80%80", // Non-BMP character as surrogate pair.
258 ]; 258 ];
259 for (int i = 0; i < invalidCharsAndReplacements.length; i += 2) { 259 for (int i = 0; i < invalidCharsAndReplacements.length; i += 2) {
260 var invalid = invalidCharsAndReplacements[i]; 260 var invalid = invalidCharsAndReplacements[i];
261 var valid = invalidCharsAndReplacements[i + 1]; 261 var valid = invalidCharsAndReplacements[i + 1];
262 checkInvalid("A{}b:///".replaceAll('{}', invalid)); 262 checkInvalid("A{}b:///".replaceAll('{}', invalid));
263 checkInvalid("{}b:///".replaceAll('{}', invalid)); 263 checkInvalid("{}b:///".replaceAll('{}', invalid));
264 checkInvalidReplaced("s://user{}info@x.x/", invalid, valid); 264 checkInvalidReplaced("s://user{}info@x.x/", invalid, valid);
265 checkInvalidReplaced("s://reg{}name/", invalid, valid); 265 checkInvalidReplaced("s://reg{}name/", invalid, valid);
266 checkInvalid("s://regname:12{}45/".replaceAll("{}", invalid)); 266 checkInvalid("s://regname:12{}45/".replaceAll("{}", invalid));
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 String dump(Uri uri) { 629 String dump(Uri uri) {
630 return "URI: $uri\n" 630 return "URI: $uri\n"
631 " Scheme: ${uri.scheme} #${uri.scheme.length}\n" 631 " Scheme: ${uri.scheme} #${uri.scheme.length}\n"
632 " User-info: ${uri.userInfo} #${uri.userInfo.length}\n" 632 " User-info: ${uri.userInfo} #${uri.userInfo.length}\n"
633 " Host: ${uri.host} #${uri.host.length}\n" 633 " Host: ${uri.host} #${uri.host.length}\n"
634 " Port: ${uri.port}\n" 634 " Port: ${uri.port}\n"
635 " Path: ${uri.path} #${uri.path.length}\n" 635 " Path: ${uri.path} #${uri.path.length}\n"
636 " Query: ${uri.query} #${uri.query.length}\n" 636 " Query: ${uri.query} #${uri.query.length}\n"
637 " Fragment: ${uri.fragment} #${uri.fragment.length}\n"; 637 " Fragment: ${uri.fragment} #${uri.fragment.length}\n";
638 } 638 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698