// 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. /// This tests HTML validation and sanitization, which is very important /// for prevent XSS or other attacks. If you suppress this, or parts of it /// please make it a critical bug and bring it to the attention of the /// dart:html maintainers. import 'dart:js' as js; import 'dart:html'; import 'dart:svg' as svg; import 'package:expect/minitest.dart'; import 'utils.dart'; var oldAdoptNode; var jsDocument; /// We want to verify that with the trusted sanitizer we are not /// creating a document fragment. So make DocumentFragment operation /// throw. makeDocumentFragmentAdoptionThrow() { var document = js.context['document']; jsDocument = new js.JsObject.fromBrowserObject(document); oldAdoptNode = jsDocument['adoptNode']; jsDocument['adoptNode'] = null; } restoreOldAdoptNode() { jsDocument['adoptNode'] = oldAdoptNode; } main() { group('not_create_document_fragment', () { setUp(makeDocumentFragmentAdoptionThrow); tearDown(restoreOldAdoptNode); test('setInnerHtml', () { document.body.setInnerHtml('
anything
", throws); }); }); }