| Index: runtime/vm/uri_test.cc | 
| diff --git a/runtime/vm/uri_test.cc b/runtime/vm/uri_test.cc | 
| index d0b99ab2b2e1589484dfa65553aeb1fb0d3c8663..34631a58cd1e150c5adc85e7d249e18c872055e3 100644 | 
| --- a/runtime/vm/uri_test.cc | 
| +++ b/runtime/vm/uri_test.cc | 
| @@ -229,32 +229,6 @@ TEST_CASE(ParseUri_NoScheme_FragmentOnly) { | 
| } | 
|  | 
|  | 
| -TEST_CASE(ParseUri_DoubleSlash1) { | 
| -  ParsedUri uri; | 
| -  EXPECT(!ParseUri("foo://example.com:8042/over//there?name=ferret", &uri)); | 
| -  EXPECT(uri.scheme == NULL); | 
| -  EXPECT(uri.userinfo == NULL); | 
| -  EXPECT(uri.host == NULL); | 
| -  EXPECT(uri.port == NULL); | 
| -  EXPECT(uri.path == NULL); | 
| -  EXPECT(uri.query == NULL); | 
| -  EXPECT(uri.fragment == NULL); | 
| -} | 
| - | 
| - | 
| -TEST_CASE(ParseUri_DoubleSlash2) { | 
| -  ParsedUri uri; | 
| -  EXPECT(!ParseUri("or//here", &uri)); | 
| -  EXPECT(uri.scheme == NULL); | 
| -  EXPECT(uri.userinfo == NULL); | 
| -  EXPECT(uri.host == NULL); | 
| -  EXPECT(uri.port == NULL); | 
| -  EXPECT(uri.path == NULL); | 
| -  EXPECT(uri.query == NULL); | 
| -  EXPECT(uri.fragment == NULL); | 
| -} | 
| - | 
| - | 
| TEST_CASE(ParseUri_LowerCaseScheme) { | 
| ParsedUri uri; | 
| EXPECT(ParseUri("ScHeMe:path", &uri)); | 
| @@ -556,6 +530,17 @@ TEST_CASE(ResolveUri_NormalizeEscapes_BrokenEscapeSequence) { | 
| } | 
|  | 
|  | 
| +TEST_CASE(ResolveUri_DataUri) { | 
| +  const char* data_uri = | 
| +      "data:application/dart;charset=utf-8,%20%20%20%20%20%20%20%20import%20%22dart:isolate%22;%0A%0A%20%20%20%20%20%20%20%20import%20%22package:stream_channel/stream_channel.dart%22;%0A%0A%20%20%20%20%20%20%20%20import%20%22package:test/src/runner/plugin/remote_platform_helpers.dart%22;%0A%20%20%20%20%20%20%20%20import%20%22package:test/src/runner/vm/catch_isolate_errors.dart%22;%0A%0A%20%20%20%20%20%20%20%20import%20%22file:///home/sra/xxxx/dev_compiler/test/all_tests.dart%22%20as%20test;%0A%0A%20%20%20%20%20%20%20%20void%20main(_,%20SendPort%20message)%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20channel%20=%20serializeSuite(()%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20catchIsolateErrors();%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20test.main;%0A%20%20%20%20%20%20%20%20%20%20%7D);%0A%20%20%20%20%20%20%20%20%20%20new%20IsolateChannel.connectSend(message).pipe(channel);%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20";  // NOLINT | 
| + | 
| +  const char* target_uri; | 
| +  EXPECT(ResolveUri(data_uri, | 
| +                    "bscheme://buser@bhost:11/base/path?baseQuery#bfragment", | 
| +                    &target_uri)); | 
| +  EXPECT_STREQ(data_uri, target_uri); | 
| +} | 
| + | 
| // dart:core Uri allows for the base url to be relative (no scheme, no | 
| // authory, relative path) but this behavior is not in RFC 3986.  We | 
| // do not implement this. | 
|  |