mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 13:28:03 +00:00
4283c3e41e
R=sigmund@google.com Review URL: https://codereview.chromium.org//231413003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34890 260f80e4-7a28-3924-810f-c04153c831b5
56 lines
1.6 KiB
Dart
56 lines
1.6 KiB
Dart
// 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 "package:expect/expect.dart";
|
|
import 'package:unittest/unittest.dart';
|
|
import 'package:unittest/html_config.dart';
|
|
import 'dart:html' as 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() {
|
|
useHtmlConfiguration();
|
|
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(false, isTrue, reason: 'Should not reach here: $x');
|
|
} on NoSuchMethodError catch (e) {
|
|
// Expected exception.
|
|
} on Exception catch (e) {
|
|
expect(false, isTrue, reason: 'Wrong exception: $e');
|
|
}
|
|
});
|
|
|
|
test('foo', () {
|
|
var win = things[inscrutable(0)];
|
|
String x = win.foo('bar');
|
|
expect(x, 'not bar');
|
|
});
|
|
|
|
// 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(false, isTrue, reason: 'Should not reach here: $x');
|
|
} on NoSuchMethodError catch (e) {
|
|
// Expected exception.
|
|
} on Exception catch (e) {
|
|
expect(false, isTrue, reason: 'Wrong exception: $e');
|
|
}
|
|
});
|
|
}
|