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

Unified Diff: test/codegen/lib/html/webgl_1_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: ptal Created 4 years, 8 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/codegen/lib/html/utils.dart ('k') | test/codegen/lib/html/websocket_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/codegen/lib/html/webgl_1_test.dart
diff --git a/test/codegen/lib/html/webgl_1_test.dart b/test/codegen/lib/html/webgl_1_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..d6e6f1f4cadd2cbd04ed87ec21ac3b923609cd3e
--- /dev/null
+++ b/test/codegen/lib/html/webgl_1_test.dart
@@ -0,0 +1,111 @@
+// 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 web_gl_test;
+import 'package:unittest/unittest.dart';
+import 'package:unittest/html_individual_config.dart';
+import 'dart:html';
+import 'dart:typed_data';
+import 'dart:web_gl';
+import 'dart:web_gl' as gl;
+
+// Test that WebGL is present in dart:web_gl API
+
+main() {
+ useHtmlIndividualConfiguration();
+
+ group('supported', () {
+ test('supported', () {
+ expect(RenderingContext.supported, isTrue);
+ });
+ });
+
+ group('functional', () {
+ test('unsupported fails', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext3d();
+ if (RenderingContext.supported) {
+ expect(context, isNotNull);
+ expect(context, new isInstanceOf<RenderingContext>());
+ } else {
+ expect(context, isNull);
+ }
+ });
+
+ if (RenderingContext.supported) {
+ test('simple', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext('experimental-webgl');
+ var shader = context.createShader(gl.VERTEX_SHADER);
+ context.shaderSource(shader, 'void main() { }');
+ context.compileShader(shader);
+ var success = context.getShaderParameter(shader, gl.COMPILE_STATUS);
+ expect(success, isTrue);
+ });
+
+ test('getContext3d', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext3d();
+ expect(context, isNotNull);
+ expect(context, new isInstanceOf<RenderingContext>());
+
+ context = canvas.getContext3d(depth: false);
+ expect(context, isNotNull);
+ expect(context, new isInstanceOf<RenderingContext>());
+ });
+
+ test('texImage2D', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext3d();
+ var pixels = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]);
+ context.texImage2DUntyped(1, 1, 1, 1, 10, 10, 1, 1, pixels);
+
+ canvas = new CanvasElement();
+ document.body.children.add(canvas);
+ var context2 = canvas.getContext('2d');
+ context.texImage2DData(1, 1, 1, 1, 10,
+ context2.getImageData(10, 10, 10, 10));
+
+ context.texImage2DImage(1, 1, 1, 1, 10, new ImageElement());
+ context.texImage2DCanvas(1, 1, 1, 1, 10, new CanvasElement());
+ context.texImage2DVideo(1, 1, 1, 1, 10, new VideoElement());
+ });
+
+ test('texSubImage2D', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext3d();
+ var pixels = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]);
+ context.texSubImage2DUntyped(1, 1, 1, 1, 10, 10, 1, 1, pixels);
+
+ canvas = new CanvasElement();
+ document.body.children.add(canvas);
+ var context2 = canvas.getContext('2d');
+ context.texSubImage2DData(1, 1, 1, 1, 1, 10,
+ context2.getImageData(10, 10, 10, 10));
+
+ context.texSubImage2DImage(1, 1, 1, 1, 1, 10, new ImageElement());
+ context.texSubImage2DCanvas(1, 1, 1, 1, 1, 10, new CanvasElement());
+ context.texSubImage2DVideo(1, 1, 1, 1, 1, 10, new VideoElement());
+ });
+
+ test('getContextAttributes', () {
+ var canvas = new CanvasElement();
+ var context = canvas.getContext3d();
+ var attributes = context.getContextAttributes();
+
+ expect(attributes, isNotNull);
+ expect(attributes, new isInstanceOf<gl.ContextAttributes>());
+
+ expect(attributes.alpha, isBoolean);
+ expect(attributes.antialias, isBoolean);
+ expect(attributes.depth, isBoolean);
+ expect(attributes.premultipliedAlpha, isBoolean);
+ expect(attributes.preserveDrawingBuffer, isBoolean);
+ expect(attributes.stencil, isBoolean);
+ });
+ }
+ });
+}
+
+Matcher isBoolean = anyOf(isTrue, isFalse);
« no previous file with comments | « test/codegen/lib/html/utils.dart ('k') | test/codegen/lib/html/websocket_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698