// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. @JS() library js_dart_to_string_test; import 'dart:html'; import 'package:js/js.dart'; import 'package:expect/minitest.dart'; _injectJs() { document.body.append(new ScriptElement() ..type = 'text/javascript' ..innerHtml = r""" function jsToStringViaCoercion(a) { return a + ''; }; """); } @JS() external String jsToStringViaCoercion(obj); class ExampleClassWithCustomToString { var x; ExampleClassWithCustomToString(this.x); String toString() => "#$x#"; } main() { _injectJs(); group('toString', () { test('custom dart', () { var x = new ExampleClassWithCustomToString("fooBar"); expect(jsToStringViaCoercion(x), equals("#fooBar#")); expect(jsToStringViaCoercion({'a': 1, 'b': 2}), equals("{a: 1, b: 2}")); }); }); }