Files
sdk/tests/html/window_nosuchmethod_test.dart
T
gram@google.com 981c4b11df Restructure pkg/unittest and pkg/webdriver to follow the pub conventions.
This means all imports of unittest in our test code had to change to include 'lib' in the path.
While doing that change I changed the library/imports to the new syntax in the affected files.
Review URL: https://codereview.chromium.org//11301046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14443 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-01 23:09:47 +00:00

55 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 '../../pkg/unittest/lib/unittest.dart';
import '../../pkg/unittest/lib/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');
}
});
}