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

Side by Side Diff: tests/html/url_test.dart

Issue 10915128: Implementing window.createObjectURL* (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Disabling test on IE since it's not supported on IE9. Created 8 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/html/html.status ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 #library('url_test');
6 #import('../../pkg/unittest/unittest.dart');
7 #import('../../pkg/unittest/html_config.dart');
8 #import('dart:html');
9
10 main() {
11 useHtmlConfiguration();
12
13 Blob createImageBlob() {
14 var canvas = new CanvasElement();
15 canvas.width = 100;
16 canvas.height = 100;
17
18 var context = canvas.context2d;
19 context.fillStyle = 'red';
20 context.fillRect(0, 0, canvas.width, canvas.height);
21
22 var dataUri = canvas.toDataURL('image/png');
23 var byteString = window.atob(dataUri.split(',')[1]);
24 var mimeString = dataUri.split(',')[0].split(':')[1].split(';')[0];
25
26 var arrayBuffer = new ArrayBuffer(byteString.length);
27 var dataArray = new Uint8Array.fromBuffer(arrayBuffer);
28 for (var i = 0; i < byteString.length; i++) {
29 dataArray[i] = byteString.charCodeAt(i);
30 }
31
32 var blob = new Blob([arrayBuffer], 'image/png');
33 return blob;
34 }
35
36 group('blob', () {
37 test('createObjectUrl', () {
38 var blob = createImageBlob();
39 var url = window.createObjectUrl(blob);
40 expect(url.length, greaterThan(0));
41 expect(url.startsWith('blob:'));
42
43 var img = new ImageElement();
44 img.on.load.add(expectAsync1((_) {
45 expect(img.complete, true);
46 }));
47 img.on.error.add((_) {
48 guardAsync(() {
49 expect(true, isFalse, 'URL failed to load.');
50 });
51 });
52 img.src = url;
53 });
54
55 test('revokeObjectUrl', () {
56 var blob = createImageBlob();
57 var url = window.createObjectUrl(blob);
58 expect(url.startsWith('blob:'));
59 window.revokeObjectUrl(url);
60
61 var img = new ImageElement();
62 // Image should fail to load since the URL was revoked.
63 img.on.error.add(expectAsync1((_) {
64 }));
65 img.on.load.add((_) {
66 guardAsync(() {
67 expect(true, isFalse, 'URL should not have loaded.');
68 });
69 });
70 img.src = url;
71 });
72
73 });
74 }
OLDNEW
« no previous file with comments | « tests/html/html.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698