// 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 FormDataTest; import 'package:expect/legacy/async_minitest.dart'; // ignore: deprecated_member_use import 'dart:html'; void main() { // TODO(efortuna): This is a bad test. Revisit when we have tests that can run // both a server and fire up a browser. group('supported', () { test('supported', () { expect(FormData.supported, isTrue); }); }); group('functional', () { test('unsupported throws', () { var expectation = FormData.supported ? returnsNormally : throws; expect(() { new FormData(); }, expectation); }); var isFormData = predicate((x) => x is FormData, 'is a FormData'); if (FormData.supported) { test('constructorTest1', () { var form = new FormData(); expect(form, isNotNull); expect(form, isFormData); }); test('constructorTest2', () { var form = new FormData(new FormElement()); expect(form, isNotNull); expect(form, isFormData); }); test('appendTest', () { var form = new FormData(); form.append('test', '1'); form.append('username', 'Elmo'); form.append('address', '1 Sesame Street'); form.append('password', '123456'); expect(form, isNotNull); }); test('appendBlob', () { var form = new FormData(); var blob = new Blob([ 'Indescribable... Indestructible! Nothing can stop it!', ], 'text/plain'); form.appendBlob('theBlob', blob, 'theBlob.txt'); }); test('send', () { var form = new FormData(); var blobString = 'Indescribable... Indestructible! Nothing can stop it!'; var blob = new Blob([blobString], 'text/plain'); form.appendBlob('theBlob', blob, 'theBlob.txt'); var xhr = new HttpRequest(); xhr.open( 'POST', '${window.location.protocol}//${window.location.host}/echo', ); xhr.onLoad.listen( expectAsync((e) { expect(xhr.responseText!.contains(blobString), isTrue); }), ); xhr.onError.listen((e) { fail('$e'); }); xhr.send(form); }); } }); }