| Index: client/tests/client/dom/WindowNSMETest.dart
|
| ===================================================================
|
| --- client/tests/client/dom/WindowNSMETest.dart (revision 0)
|
| +++ client/tests/client/dom/WindowNSMETest.dart (revision 0)
|
| @@ -0,0 +1,52 @@
|
| +// Copyright (c) 2012, 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.
|
| +
|
| +#library('WindowNSMETest');
|
| +#import('../../../testing/unittest/unittest.dart');
|
| +#import('dart:dom', prefix: 'dom');
|
| +
|
| +// Not defined in dom.Window.
|
| +foo(x) => x;
|
| +
|
| +class Unused {
|
| + foo(x) => 'not $x';
|
| +}
|
| +
|
| +int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1));
|
| +
|
| +main() {
|
| + var things = [new Unused(), dom.window];
|
| +
|
| + test('windowNonMethod', () {
|
| + var win = things[inscrutable(1)];
|
| + final message = foo("Hello World");
|
| + try {
|
| + String x = win.foo(message);
|
| + Expect.fail('Should not reach here: $x');
|
| + } catch (NoSuchMethodException e) {
|
| + // Expected exception.
|
| + } catch (Exception e) {
|
| + Expect.fail('Wrong exception: $e');
|
| + }
|
| + });
|
| +
|
| + test('foo', () {
|
| + var win = things[inscrutable(0)];
|
| + String x = win.foo('bar');
|
| + Expect.equals('not bar', x);
|
| + });
|
| +
|
| + // Use dom.window direclty in case the compiler does type inference.
|
| + test('windowNonMethod2', () {
|
| + final message = foo("Hello World");
|
| + try {
|
| + String x = dom.window.foo(message);
|
| + Expect.fail('Should not reach here: $x');
|
| + } catch (NoSuchMethodException e) {
|
| + // Expected exception.
|
| + } catch (Exception e) {
|
| + Expect.fail('Wrong exception: $e');
|
| + }
|
| + });
|
| +}
|
|
|