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

Unified Diff: test/codegen/lib/html/url_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/uri_test.dart ('k') | test/codegen/lib/html/util.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/codegen/lib/html/url_test.dart
diff --git a/test/codegen/lib/html/url_test.dart b/test/codegen/lib/html/url_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..69f55ad1c4fc8e882a9ca261d459a197a27d4317
--- /dev/null
+++ b/test/codegen/lib/html/url_test.dart
@@ -0,0 +1,71 @@
+// 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 url_test;
+import 'package:unittest/unittest.dart';
+import 'package:unittest/html_config.dart';
+import 'dart:html';
+import 'dart:typed_data';
+
+main() {
+ useHtmlConfiguration();
+
+ Blob createImageBlob() {
+ var canvas = new CanvasElement();
+ canvas.width = 100;
+ canvas.height = 100;
+
+ var context = canvas.context2D;
+ context.fillStyle = 'red';
+ context.fillRect(0, 0, canvas.width, canvas.height);
+
+ var dataUri = canvas.toDataUrl('image/png');
+ var byteString = window.atob(dataUri.split(',')[1]);
+ var mimeString = dataUri.split(',')[0].split(':')[1].split(';')[0];
+
+ var arrayBuffer = new Uint8List(byteString.length);
+ var dataArray = new Uint8List.view(arrayBuffer.buffer);
+ for (var i = 0; i < byteString.length; i++) {
+ dataArray[i] = byteString.codeUnitAt(i);
+ }
+
+ var blob = new Blob([arrayBuffer], 'image/png');
+ return blob;
+ }
+
+ group('blob', () {
+ test('createObjectUrlFromBlob', () {
+ var blob = createImageBlob();
+ var url = Url.createObjectUrlFromBlob(blob);
+ expect(url.length, greaterThan(0));
+ expect(url, startsWith('blob:'));
+
+ var img = new ImageElement();
+ img.onLoad.listen(expectAsync((_) {
+ expect(img.complete, true);
+ }));
+ img.onError.listen((_) {
+ fail('URL failed to load.');
+ });
+ img.src = url;
+ });
+
+ test('revokeObjectUrl', () {
+ var blob = createImageBlob();
+ var url = Url.createObjectUrlFromBlob(blob);
+ expect(url, startsWith('blob:'));
+ Url.revokeObjectUrl(url);
+
+ var img = new ImageElement();
+ // Image should fail to load since the URL was revoked.
+ img.onError.listen(expectAsync((_) {
+ }));
+ img.onLoad.listen((_) {
+ fail('URL should not have loaded.');
+ });
+ img.src = url;
+ });
+
+ });
+}
« no previous file with comments | « test/codegen/lib/html/uri_test.dart ('k') | test/codegen/lib/html/util.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698