提交 d1d6e443 编写于 作者: A Adam Barth

Make sky/tests/services/event-sender.sky pass

This CL ports sky/framework/shell.sky to Dart and makes event-sender.sky. I've
also removed a number of not-that-interesting tests for the JS Mojo bindings.

R=eseidel@chromium.org, rafaelw@chromium.org

Review URL: https://codereview.chromium.org/922123002
上级 7d9b6f1b
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import "/mojo/public/dart/application.dart";
import "dart:mojo_bindings" as bindings;
import "dart:mojo_core" as core;
import "dart:sky.internals" as internals;
import "package:mojo/public/interfaces/application/service_provider.mojom.dart";
import "package:mojo/public/interfaces/application/shell.mojom.dart";
final ShellProxy _shell = new ShellProxy.fromHandle(
new core.MojoHandle(internals.passShellProxyHandle()));
ApplicationConnection connectToApplication(String url) {
var serviceProviderProxy = new ServiceProviderProxy.unbound();
_shell.connectToApplication(url, serviceProviderProxy, null);
return new ApplicationConnection(serviceProviderProxy);
}
void connectToService(String url, bindings.Proxy proxy) {
connectToApplication(url).connectToService(proxy);
}
<import src="/gen/mojo/public/sky/connection.sky" as="connection" />
<script>
function connectToService(url, service, client) {
var handle = internals.connectToService(url, service.name);
return connection.bindHandleToProxy(handle, service);
}
module.exports = {
connectToService: connectToService,
};
</script>
......@@ -10,9 +10,6 @@ https://github.com/domokit/mojo/issues/14 parser/normaliser-null.sky [ Skip ]
https://github.com/domokit/mojo/issues/14 parser/utf16.sky [ Skip ]
https://github.com/domokit/mojo/issues/16 parser/normaliser-crlf.sky [ Skip ]
# We don't implement embed ViewManagerClient yet.
crbug.com/2 services/iframe-embed-vmc.sky [ Skip ]
# These tests broke during the Dart migration
crbug.com/2 animation/basic-imperative.sky [ Skip ]
crbug.com/2 animation/basic-transition.sky [ Skip ]
......@@ -45,9 +42,6 @@ crbug.com/2 modules/load-event.sky [ Skip ]
crbug.com/2 modules/modules.sky [ Skip ]
crbug.com/2 modules/script-import.sky [ Skip ]
crbug.com/2 parser/script.sky [ Skip ]
crbug.com/2 services/buffer.sky [ Skip ]
crbug.com/2 services/codec.sky [ Skip ]
crbug.com/2 services/core.sky [ Skip ]
crbug.com/2 services/event-sender.sky [ Skip ]
crbug.com/2 services/iframe-embed-vmc.sky [ Skip ]
crbug.com/2 services/iframe-service-provider.sky [ Skip ]
crbug.com/2 services/network.sky [ Skip ]
<html>
<import src="../resources/dump-as-text.sky" />
<import src="/gen/mojo/public/sky/buffer.sky" as="buffer" />
<div id="result">FAIL</div>
<script>
document.getElementById("result").textContent =
buffer.Buffer ? "PASS" : "FAIL: buffer.Buffer is missing";
</script>
</html>
<html>
<import src="../resources/dump-as-text.sky" />
<import src="/gen/mojo/public/sky/codec.sky" as="codec" />
<div id="result">FAIL</div>
<script>
document.getElementById("result").textContent =
codec.MessageBuilder ? "PASS" : "FAIL: codec.MessageBuilder is missing";
</script>
</html>
<html>
<import src="../resources/dump-as-text.sky" />
<import src="/gen/mojo/public/sky/core.sky" as="core" />
<div id="result">FAIL</div>
<script>
document.getElementById("result").textContent =
core.readMessage ? "PASS" : "FAIL: core.readMessage is missing";
</script>
</html>
CONSOLE: unittest-suite-wait-for-done
#BEGIN
Running 1 tests
ok 1 Sky event sender should be able to send events
1 tests
1 pass
0 fail
CONSOLE: PASS: should be able to send events
CONSOLE:
CONSOLE: All 1 tests passed.
CONSOLE: unittest-suite-success
DONE
#!mojo mojo:sky_viewer
<sky>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<import src="/gen/mojo/services/input_events/public/interfaces/input_event_constants.mojom.sky" as="constants" />
<import src="/gen/mojo/services/input_events/public/interfaces/input_events.mojom.sky" as="events" />
<import src="/gen/sky/services/testing/test_harness.mojom.sky" as="harness" />
<import src="/sky/framework/shell.sky" as="shell" />
<script>
describe('Sky event sender', function() {
it('should be able to send events', function(done) {
var sky = document.querySelector('sky')
sky.addEventListener('keypress', function(event) {
assert.equal(event.type, 'keypress');
assert.equal(event.key, 0);
assert.equal(event.charCode, 0x41);
done();
});
import "../resources/third_party/unittest/unittest.dart";
import "../resources/unit.dart";
import "/sky/framework/shell.dart" as shell;
import "dart:sky";
import "package:mojo/services/input_events/public/interfaces/input_event_constants.mojom.dart" as constants;
import "package:mojo/services/input_events/public/interfaces/input_events.mojom.dart" as events;
import "package:sky/services/testing/test_harness.mojom.dart" as harness;
void main() {
initUnit();
var testHarness = shell.connectToService(
"mojo:sky_tester", harness.TestHarness);
testHarness.dispatchInputEvent(new events.Event({
action: constants.EventType.KEY_PRESSED,
key_data: new events.KeyData({
windows_key_code: 0x41,
text: 0x41,
unmodified_text: 0x41,
is_char: true,
character: 0x41,
}),
test('should be able to send events', () {
var sky = document.querySelector('sky');
sky.addEventListener('keypress', expectAsync((event) {
expect(event.type, equals('keypress'));
expect(event.key, equals(0));
expect(event.charCode, equals(0x41));
}));
var testHarness = new harness.TestHarnessProxy.unbound();
shell.connectToService("mojo:sky_tester", testHarness);
var keyData = new events.KeyData();
keyData.windowsKeyCode = 0x41;
keyData.text = 0x41;
keyData.unmodifiedText = 0x41;
keyData.isChar = true;
keyData.character = 0x41;
var event = new events.Event();
event.action = constants.EventType_KEY_PRESSED;
event.keyData = keyData;
testHarness.dispatchInputEvent(event);
});
});
}
</script>
</sky>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册