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
139 lines
4.3 KiB
Dart
139 lines
4.3 KiB
Dart
// Copyright (c) 2013, 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 interactive_test;
|
|
|
|
import 'dart:async';
|
|
import 'dart:html';
|
|
import 'package:unittest/unittest.dart';
|
|
import 'package:unittest/html_individual_config.dart';
|
|
import 'utils.dart';
|
|
|
|
|
|
main() {
|
|
useHtmlIndividualConfiguration();
|
|
|
|
group('Geolocation', () {
|
|
test('getCurrentPosition', () {
|
|
return window.navigator.geolocation.getCurrentPosition().then(
|
|
(position) {
|
|
expect(position.coords.latitude, isNotNull);
|
|
expect(position.coords.longitude, isNotNull);
|
|
expect(position.coords.accuracy, isNotNull);
|
|
});
|
|
});
|
|
|
|
test('watchPosition', () {
|
|
return window.navigator.geolocation.watchPosition().first.then(
|
|
(position) {
|
|
expect(position.coords.latitude, isNotNull);
|
|
expect(position.coords.longitude, isNotNull);
|
|
expect(position.coords.accuracy, isNotNull);
|
|
});
|
|
});
|
|
});
|
|
|
|
group('MediaStream', () {
|
|
if (MediaStream.supported) {
|
|
test('getUserMedia', () {
|
|
return window.navigator.getUserMedia(video: true).then((stream) {
|
|
expect(stream, isNotNull);
|
|
|
|
var url = Url.createObjectUrlFromStream(stream);
|
|
expect(url, isNotNull);
|
|
|
|
var video = new VideoElement()
|
|
..autoplay = true;
|
|
|
|
var completer = new Completer();
|
|
video.onError.listen((e) {
|
|
completer.completeError(e);
|
|
});
|
|
video.onPlaying.first.then((e) {
|
|
completer.complete(video);
|
|
});
|
|
|
|
document.body.append(video);
|
|
video.src = url;
|
|
|
|
return completer.future;
|
|
});
|
|
});
|
|
|
|
test('getUserMediaComplexConstructor', () {
|
|
return window.navigator.getUserMedia(
|
|
video: {'mandatory':
|
|
{ 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
|
|
'optional':
|
|
[{ 'minFrameRate': 60 },
|
|
{ 'maxWidth': 640 }]
|
|
}).then((stream) {
|
|
expect(stream, isNotNull);
|
|
|
|
var url = Url.createObjectUrlFromStream(stream);
|
|
expect(url, isNotNull);
|
|
|
|
var video = new VideoElement()
|
|
..autoplay = true;
|
|
|
|
var completer = new Completer();
|
|
video.onError.listen((e) {
|
|
completer.completeError(e);
|
|
});
|
|
video.onPlaying.first.then((e) {
|
|
completer.complete(video);
|
|
});
|
|
|
|
document.body.append(video);
|
|
video.src = url;
|
|
|
|
return completer.future;
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
group('KeyEvent', () {
|
|
keydownHandlerTest(KeyEvent e) {
|
|
document.body.innerHtml =
|
|
'${document.body.innerHtml}KeyDOWN: CharCode: ${e.charCode}, KeyCode:'
|
|
' ${e.keyCode}<br />';
|
|
expect(e.charCode, 0);
|
|
}
|
|
keypressHandlerTest(KeyEvent e) {
|
|
document.body.innerHtml =
|
|
'${document.body.innerHtml}KeyPRESS: CharCode: ${e.charCode}, '
|
|
'KeyCode: ${e.keyCode}<br />';
|
|
}
|
|
keyupHandlerTest(KeyEvent e) {
|
|
document.body.innerHtml =
|
|
'${document.body.innerHtml}KeyUP: CharCode: ${e.charCode}, KeyCode:'
|
|
' ${e.keyCode}<br />';
|
|
expect(e.charCode, 0);
|
|
}
|
|
keyupHandlerTest2(KeyEvent e) {
|
|
document.body.innerHtml =
|
|
'${document.body.innerHtml}A second KeyUP handler: CharCode: '
|
|
'${e.charCode}, KeyCode: ${e.keyCode}<br />';
|
|
expect(e.charCode, 0);
|
|
}
|
|
test('keys', () {
|
|
document.body.innerHtml =
|
|
'${document.body.innerHtml}To test keyboard event values, press some '
|
|
'keys on your keyboard.<br /><br />The charcode for keydown and keyup'
|
|
' should be 0, and the keycode should (generally) be populated with a'
|
|
' value. Keycode and charcode should both have values for the '
|
|
'keypress event.';
|
|
KeyboardEventStream.onKeyDown(document.body).listen(
|
|
keydownHandlerTest);
|
|
KeyboardEventStream.onKeyPress(document.body).listen(
|
|
keypressHandlerTest);
|
|
KeyboardEventStream.onKeyUp(document.body).listen(
|
|
keyupHandlerTest);
|
|
KeyboardEventStream.onKeyUp(document.body).listen(
|
|
keyupHandlerTest2);
|
|
});
|
|
});
|
|
}
|