diff --git a/pkgs/glob/test/match_test.dart b/pkgs/glob/test/match_test.dart
index eeb307d..ad9dcf3 100644
--- a/pkgs/glob/test/match_test.dart
+++ b/pkgs/glob/test/match_test.dart
@@ -6,8 +6,12 @@
 import 'package:path/path.dart' as p;
 import 'package:unittest/unittest.dart';
 
-const ASCII_WITHOUT_SLASH = "\t\n\r !\"#\$%&'()*+`-.0123456789:;<=>?@ABCDEFGHIJ"
-    "KLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const RAW_ASCII_WITHOUT_SLASH = "\t\n\r !\"#\$%&'()*+`-.0123456789:;<=>?@ABCDEF"
+    "GHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+
+// URL-encode the path for a URL context.
+final asciiWithoutSlash = p.style == p.Style.url ?
+    Uri.encodeFull(RAW_ASCII_WITHOUT_SLASH) : RAW_ASCII_WITHOUT_SLASH;
 
 void main() {
   test("literals match exactly", () {
@@ -16,10 +20,15 @@
     expect("foo*", contains(new Glob(r"foo\*")));
   });
 
+  test("backslashes match nothing on Windows", () {
+    expect(r"foo\bar",
+        isNot(contains(new Glob(r"foo\\bar", context: p.windows))));
+  });
+
   group("star", () {
     test("matches non-separator characters", () {
       var glob = new Glob("*");
-      expect(ASCII_WITHOUT_SLASH, contains(glob));
+      expect(asciiWithoutSlash, contains(glob));
     });
 
     test("matches the empty string", () {
@@ -36,7 +45,7 @@
   group("double star", () {
     test("matches non-separator characters", () {
       var glob = new Glob("**");
-      expect(ASCII_WITHOUT_SLASH, contains(glob));
+      expect(asciiWithoutSlash, contains(glob));
     });
 
     test("matches the empty string", () {
@@ -65,7 +74,8 @@
   group("any char", () {
     test("matches any non-separator character", () {
       var glob = new Glob("foo?");
-      for (var char in ASCII_WITHOUT_SLASH.split('')) {
+      for (var char in RAW_ASCII_WITHOUT_SLASH.split('')) {
+        if (p.style == p.Style.url) char = Uri.encodeFull(char);
         expect("foo$char", contains(glob));
       }
     });
diff --git a/pkgs/glob/test/parse_test.dart b/pkgs/glob/test/parse_test.dart
index 5ea3f05..fcaa5b4 100644
--- a/pkgs/glob/test/parse_test.dart
+++ b/pkgs/glob/test/parse_test.dart
@@ -3,11 +3,15 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:glob/glob.dart';
+import 'package:path/path.dart' as p;
 import 'package:unittest/unittest.dart';
 
 void main() {
   test("supports backslash-escaped characters", () {
     expect(r"\*[]{,}?()", contains(new Glob(r"\\\*\[\]\{\,\}\?\(\)")));
+    if (p.style != p.Style.windows) {
+      expect(r"foo\bar", contains(new Glob(r"foo\\bar")));
+    }
   });
 
   test("disallows an empty glob", () {
