| Index: tests/html/safe_dom_test.dart
|
| diff --git a/tests/html/safe_dom_test.dart b/tests/html/safe_dom_test.dart
|
| deleted file mode 100644
|
| index ee2ddaa0dbea6b12dc91184a28e1e672ff0edc02..0000000000000000000000000000000000000000
|
| --- a/tests/html/safe_dom_test.dart
|
| +++ /dev/null
|
| @@ -1,98 +0,0 @@
|
| -library safe_dom_test;
|
| -
|
| -import 'dart:async';
|
| -import 'dart:html';
|
| -import '../../pkg/unittest/lib/unittest.dart';
|
| -import '../../pkg/unittest/lib/html_config.dart';
|
| -
|
| -main() {
|
| - useHtmlConfiguration();
|
| -
|
| - // Checks to see if any illegal properties were set via script.
|
| - var checkerScript = '''
|
| - window.addEventListener('message', function(e) {
|
| - if (e.data == 'check_unsafe') {
|
| - if (window.unsafe_value) {
|
| - window.postMessage('unsafe_check_failed', '*');
|
| - } else {
|
| - window.postMessage('unsafe_check_passed', '*');
|
| - }
|
| - //window.alert('checking!');
|
| - }
|
| - }, false);
|
| - ''';
|
| -
|
| - var script = new ScriptElement();
|
| - script.text = checkerScript;
|
| - document.body.append(script);
|
| -
|
| - var unsafeString =
|
| - '<img src="_.png" onerror="javascript:window.unsafe_value=1;" crap="1"/>';
|
| -
|
| - test('Safe DOM', () {
|
| - var fragment = createContextualFragment(unsafeString);
|
| -
|
| - expect(isSafe(), completion(true),
|
| - reason: 'Expected no unsafe code executed.');
|
| - });
|
| -
|
| - // Make sure that scripts did get executed, so we know our detection works.
|
| - test('Unsafe Execution', () {
|
| - var div = new DivElement();
|
| - div.unsafeInnerHtml = unsafeString;
|
| - // Crashing DRT ??
|
| - // var fragment = createContextualFragment(unsafeString);
|
| - // div.append(fragment);
|
| - // document.body.append(div)
|
| -
|
| - expect(isSafe(), completion(false),
|
| - reason: 'Expected unsafe code was executed.');
|
| - });
|
| -
|
| - test('Validity', () {
|
| - var fragment = createContextualFragment('<span>content</span>');
|
| - var div = new DivElement();
|
| - div.append(fragment);
|
| -
|
| - expect(div.nodes.length, 1);
|
| - expect(div.nodes[0] is SpanElement, isTrue);
|
| - });
|
| -}
|
| -
|
| -DocumentFragment createContextualFragment(String html, [String contextTag]) {
|
| - var doc = document.implementation.createHtmlDocument('');
|
| -
|
| - var contextElement;
|
| - if (contextTag != null) {
|
| - contextElement = doc.createElement(contextTag);
|
| - } else {
|
| - contextElement = doc.body;
|
| - }
|
| -
|
| - if (Range.supportsCreateContextualFragment) {
|
| - var range = doc.createRange();
|
| - range.selectNode(contextElement);
|
| - return range.createContextualFragment(html);
|
| - } else {
|
| - contextElement.unsafeInnerHtml = html;
|
| - var fragment = new DocumentFragment();;
|
| - while (contextElement.firstChild != null) {
|
| - fragment.append(contextElement.firstChild);
|
| - }
|
| - return fragment;
|
| - }
|
| -}
|
| -
|
| -// Delay to wait for the image load to fail.
|
| -const Duration imageLoadDelay = const Duration(milliseconds: 500);
|
| -
|
| -Future<bool> isSafe() {
|
| - return new Future.delayed(imageLoadDelay).then((_) {
|
| - window.postMessage('check_unsafe', '*');
|
| - }).then((_) {
|
| - return window.onMessage.where(
|
| - (e) => e.data.startsWith('unsafe_check')).first;
|
| - }).then((e) {
|
| - return e.data == 'unsafe_check_passed';
|
| - });
|
| -}
|
|
|