Fix Frame.location on Windows in pkg/stack_trace. Review URL: https://codereview.chromium.org//12545080 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/stack_trace@20586 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkgs/stack_trace/test/frame_test.dart b/pkgs/stack_trace/test/frame_test.dart index 66dee6a..5c5a32e 100644 --- a/pkgs/stack_trace/test/frame_test.dart +++ b/pkgs/stack_trace/test/frame_test.dart
@@ -4,6 +4,7 @@ library frame_test; +import 'dart:io'; import 'dart:uri'; import 'package:pathos/path.dart' as path; @@ -41,7 +42,7 @@ // TODO(nweiz): use URL-style paths when such a thing exists. var builder = new path.Builder(style: path.Style.posix); expect(builder.basename(frame.uri.path), equals('frame_test.dart')); - expect(frame.line, equals(15)); + expect(frame.line, equals(16)); expect(frame.column, equals(5)); expect(frame.member, equals('getStackFrame')); }); @@ -112,8 +113,8 @@ }); test('returns the relative path for file URIs', () { - var absolute = path.absolute(path.join('foo', 'bar.dart')); - expect(new Frame.parse('#0 Foo (file://$absolute:0:0)').library, + var uri = _pathToFileUri(path.join('foo', 'bar.dart')); + expect(new Frame.parse('#0 Foo ($uri:0:0)').library, equals(path.join('foo', 'bar.dart'))); }); }); @@ -124,8 +125,8 @@ expect(new Frame.parse('#0 Foo ' '(http://dartlang.org/thing.dart:5:10)').location, equals('http://dartlang.org/thing.dart 5:10')); - var absolute = path.absolute(path.join('foo', 'bar.dart')); - expect(new Frame.parse('#0 Foo (file://$absolute:1:2)').location, + var uri = _pathToFileUri(path.join('foo', 'bar.dart')); + expect(new Frame.parse('#0 Foo ($uri:1:2)').location, equals('${path.join('foo', 'bar.dart')} 1:2')); }); @@ -157,3 +158,9 @@ }); }); } + +String _pathToFileUri(String pathString) { + pathString = path.absolute(pathString); + if (Platform.operatingSystem != 'windows') return 'file://$pathString'; + return 'file:///${pathString.replaceAll("\\", "/")}'; +}