Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(366)

Unified Diff: test/browser/js_test.html

Issue 1200233004: fixes #168, dart:js implementation with a test (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix error (window not defined) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/browser/js_test.dart ('k') | test/browser/minitest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/browser/js_test.html
diff --git a/test/browser/js_test.html b/test/browser/js_test.html
new file mode 100644
index 0000000000000000000000000000000000000000..4b42da66a0428f74c29e4f8787bc59f57c80a993
--- /dev/null
+++ b/test/browser/js_test.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+
+<!-- Copyright (c) 2015, 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. -->
+
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>dart:js test</title>
+</head>
+<body>
+See console for test results...
+<script>
+ var x = 42;
+
+ var _x = 123;
+
+ var myArray = ["value1"];
+
+ var foreignDoc = (function(){
+ var doc = document.implementation.createDocument("", "root", null);
+ var element = doc.createElement('element');
+ element.setAttribute('id', 'abc');
+ doc.documentElement.appendChild(element);
+ return doc;
+ })();
+
+ function razzle() {
+ return x;
+ }
+
+ function returnThis() {
+ return this;
+ }
+
+ function getTypeOf(o) {
+ return typeof(o);
+ }
+
+ function varArgs() {
+ var args = arguments;
+ var sum = 0;
+ for (var i = 0; i < args.length; ++i) {
+ sum += args[i];
+ }
+ return sum;
+ }
+
+ function Foo(a) {
+ this.a = a;
+ }
+
+ Foo.b = 38;
+
+ Foo.prototype.bar = function() {
+ return this.a;
+ };
+ Foo.prototype.toString = function() {
+ return "I'm a Foo a=" + this.a;
+ };
+
+ var container = new Object();
+ container.Foo = Foo;
+
+ function isArray(a) {
+ return a instanceof Array;
+ }
+
+ function checkMap(m, key, value) {
+ if (m.hasOwnProperty(key))
+ return m[key] == value;
+ else
+ return false;
+ }
+
+ function invokeCallback() {
+ return callback();
+ }
+
+ function invokeCallbackWith11params() {
+ return callbackWith11params(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
+ }
+
+ function returnElement(element) {
+ return element;
+ }
+
+ function getElementAttribute(element, attr) {
+ return element.getAttribute(attr);
+ }
+
+ function addClassAttributes(list) {
+ var result = "";
+ for (var i=0; i < list.length; i++) {
+ result += list[i].getAttribute("class");
+ }
+ return result;
+ }
+
+ function getNewDate() {
+ return new Date(1995, 11, 17);
+ }
+
+ function getNewDivElement() {
+ return document.createElement("div");
+ }
+
+ function getNewEvent() {
+ return new CustomEvent('test');
+ }
+
+ function getNewBlob() {
+ var fileParts = ['<a id="a"><b id="b">hey!</b></a>'];
+ return new Blob(fileParts, {type : 'text/html'});
+ }
+
+ function getNewIDBKeyRange() {
+ return IDBKeyRange.only(1);
+ }
+
+ function getNewImageData() {
+ var canvas = document.createElement('canvas');
+ var context = canvas.getContext('2d');
+ return context.createImageData(1, 1);
+ }
+
+ function getNewInt32Array() {
+ return new Int32Array([1, 2, 3, 4, 5, 6, 7, 8]);
+ }
+
+ function getNewArrayBuffer() {
+ return new ArrayBuffer(8);
+ }
+
+ function isPropertyInstanceOf(property, type) {
+ return window[property] instanceof type;
+ }
+
+ function testJsMap(callback) {
+ var result = callback();
+ return result['value'];
+ }
+
+ function addTestProperty(o) {
+ o.testProperty = "test";
+ }
+
+ function fireClickEvent(w) {
+ var event = w.document.createEvent('Events');
+ event.initEvent('click', true, false);
+ w.document.dispatchEvent(event);
+ }
+
+ function Bar() {
+ return "ret_value";
+ }
+ Bar.foo = "property_value";
+
+ function Baz(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) {
+ this.f1 = p1;
+ this.f2 = p2;
+ this.f3 = p3;
+ this.f4 = p4;
+ this.f5 = p5;
+ this.f6 = p6;
+ this.f7 = p7;
+ this.f8 = p8;
+ this.f9 = p9;
+ this.f10 = p10;
+ this.f11 = p11;
+ }
+
+ function Liar(){}
+
+ Liar.prototype.toString = function() {
+ return 1;
+ };
+
+ function identical(o1, o2) {
+ return o1 === o2;
+ }
+
+ var someProto = { role: "proto" };
+ var someObject = Object.create(someProto);
+ someObject.role = "object";
+
+</script>
+<script type="application/dart" src="js_test.dart"></script>
+</body>
+</html>
« no previous file with comments | « test/browser/js_test.dart ('k') | test/browser/minitest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698