#932. HttpRequestUpload tests fixed
diff --git a/LibTest/html/HttpRequestUpload/onAbort_A01_t01.dart b/LibTest/html/HttpRequestUpload/onAbort_A01_t01.dart
index 5ef971d..eafdda9 100644
--- a/LibTest/html/HttpRequestUpload/onAbort_A01_t01.dart
+++ b/LibTest/html/HttpRequestUpload/onAbort_A01_t01.dart
@@ -6,18 +6,37 @@
 /// Stream of abort events handled by this HttpRequestEventTarget.
 /// @description Checks the state an event is fired when the request is aborted.
 /// @Issue https://github.com/dart-lang/co19/issues/932
-
 import "dart:html";
 import "../../../Utils/expect.dart";
 
+int get crossOriginPort {
+  var searchUrl = window.location.search!;
+  var crossOriginStr = 'crossOriginPort=';
+  var index = searchUrl.indexOf(crossOriginStr);
+  var nextArg = searchUrl.indexOf('&', index);
+  return int.parse(searchUrl.substring(index + crossOriginStr.length,
+      nextArg == -1 ? searchUrl.length : nextArg));
+}
+
+var port = crossOriginPort;
+var host = '${window.location.protocol}//${window.location.hostname}:$port';
+
 main() {
-  var request = new HttpRequest();
-  HttpRequestUpload upload = request.upload;
-  request.open('GET', "test.dart");
-  upload.onAbort.listen((event) {
+  FormData data = FormData();
+  List<String> file_contents = ["Lily was here"];
+  Blob blob = new Blob(file_contents, 'text/plain', 'native');
+  data.appendBlob("uploadData", blob);
+
+  var url = '$host/upload';
+  final r = new HttpRequest();
+  r.open("POST", url);
+  HttpRequestUpload upload = r.upload;
+  asyncStart();
+  upload.onAbort.listen((ProgressEvent event) {
+    Expect.isNotNull(event.loaded);
+    Expect.isTrue(event.loaded! == 0);
     asyncEnd();
   });
-  asyncStart();
-  request.send();
-  request.abort();
+  r.send(data);
+  r.abort();
 }
diff --git a/LibTest/html/HttpRequestUpload/onError_A01_t01.dart b/LibTest/html/HttpRequestUpload/onError_A01_t01.dart
new file mode 100644
index 0000000..f8825c1
--- /dev/null
+++ b/LibTest/html/HttpRequestUpload/onError_A01_t01.dart
@@ -0,0 +1,44 @@
+// Copyright (c) 2014, 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.
+
+/// @assertion Stream<ProgressEvent> get onError
+/// Stream of error events handled by this HttpRequestEventTarget.
+/// @description Checks that an error events issued when attemt to FET unexistent
+/// resourse is made and error 404 returned.
+/// @Issue #16757
+/// @Issue https://github.com/dart-lang/co19/issues/932
+
+import "dart:html";
+import "../../../Utils/expect.dart";
+
+int get crossOriginPort {
+  var searchUrl = window.location.search!;
+  var crossOriginStr = 'crossOriginPort=';
+  var index = searchUrl.indexOf(crossOriginStr);
+  var nextArg = searchUrl.indexOf('&', index);
+  return int.parse(searchUrl.substring(index + crossOriginStr.length,
+      nextArg == -1 ? searchUrl.length : nextArg));
+}
+
+var port = crossOriginPort;
+var host = '${window.location.protocol}//${window.location.hostname}:$port';
+
+main() {
+  FormData data = FormData();
+  List<String> file_contents = ["Lily was here"];
+  Blob blob = new Blob(file_contents, 'text/plain', 'native');
+  data.appendBlob("uploadData", blob);
+
+  var url = '$host/IntentionallyMissingFile';
+  final r = new HttpRequest();
+  r.open("POST", url);
+  HttpRequestUpload upload = r.upload;
+  asyncStart();
+  upload.onError.listen((ProgressEvent event) {
+    Expect.isNotNull(event.loaded);
+    Expect.isTrue(event.loaded! == 0);
+    asyncEnd();
+  });
+  r.send(data);
+}
diff --git a/LibTest/html/HttpRequestUpload/onError_A01_t02.dart b/LibTest/html/HttpRequestUpload/onError_A01_t02.dart
deleted file mode 100644
index aa12a03..0000000
--- a/LibTest/html/HttpRequestUpload/onError_A01_t02.dart
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2014, 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.
-
-/// @assertion Stream<ProgressEvent> get onError
-/// Stream of error events handled by this HttpRequestEventTarget.
-/// @description Checks that an error events issued when attemt to FET unexistent
-/// resourse is made and error 404 returned.
-/// @Issue #16757
-/// @Issue https://github.com/dart-lang/co19/issues/932
-
-import "dart:html";
-import "../../../Utils/expect.dart";
-
-main() {
-  HttpRequest request = new HttpRequest();
-  HttpRequestUpload upload = request.upload;
-  request.open('GET', "IntentionallyMissingFile");
-  asyncStart();
-  upload.onError.listen((event) {
-    asyncEnd();
-  });
-  request.send();
-}
diff --git a/LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01.dart b/LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01.dart
index db926c4..190f171 100644
--- a/LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01.dart
+++ b/LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01.dart
@@ -5,21 +5,39 @@
 /// @assertion Stream<ProgressEvent> get onLoadEnd
 /// Stream of loadend events handled by this HttpRequestEventTarget.
 /// @description Checks that only single event is fired.
+/// @author sgrekhov@unipro.ru
 /// @Issue https://github.com/dart-lang/co19/issues/932
 
 import "dart:html";
 import "../../../Utils/expect.dart";
 
+int get crossOriginPort {
+  var searchUrl = window.location.search!;
+  var crossOriginStr = 'crossOriginPort=';
+  var index = searchUrl.indexOf(crossOriginStr);
+  var nextArg = searchUrl.indexOf('&', index);
+  return int.parse(searchUrl.substring(index + crossOriginStr.length,
+      nextArg == -1 ? searchUrl.length : nextArg));
+}
+
+var port = crossOriginPort;
+var host = '${window.location.protocol}//${window.location.hostname}:$port';
+
 main() {
-  HttpRequest request = new HttpRequest();
-  HttpRequestUpload upload = request.upload;
-  bool first = true;
-  request.open('GET', "test.dart");
+  FormData data = FormData();
+  List<String> file_contents = ["Lily was here"];
+  Blob blob = new Blob(file_contents, 'text/plain', 'native');
+  data.appendBlob("uploadData", blob);
+
+  var url = '$host/upload';
+  final r = new HttpRequest();
+  r.open("POST", url);
+  HttpRequestUpload upload = r.upload;
   asyncStart();
-  upload.onLoadEnd.listen((event) {
-    Expect.isTrue(first);
-    first = false;
+  upload.onLoadEnd.listen((ProgressEvent event) {
+    Expect.isNotNull(event.loaded);
+    Expect.isTrue(event.loaded! > 0);
     asyncEnd();
   });
-  request.send();
+  r.send(data);
 }
diff --git a/LibTest/html/HttpRequestUpload/onLoadStart_A01_t01.dart b/LibTest/html/HttpRequestUpload/onLoadStart_A01_t01.dart
index f0e6089..96e4449 100644
--- a/LibTest/html/HttpRequestUpload/onLoadStart_A01_t01.dart
+++ b/LibTest/html/HttpRequestUpload/onLoadStart_A01_t01.dart
@@ -5,21 +5,39 @@
 /// @assertion Stream<ProgressEvent> get onLoadStart
 /// Stream of loadstart events handled by this HttpRequestEventTarget.
 /// @description Checks that only single event is fired.
+/// @author sgrekhov@unipro.ru
 /// @Issue https://github.com/dart-lang/co19/issues/932
 
 import "dart:html";
 import "../../../Utils/expect.dart";
 
+int get crossOriginPort {
+  var searchUrl = window.location.search!;
+  var crossOriginStr = 'crossOriginPort=';
+  var index = searchUrl.indexOf(crossOriginStr);
+  var nextArg = searchUrl.indexOf('&', index);
+  return int.parse(searchUrl.substring(index + crossOriginStr.length,
+      nextArg == -1 ? searchUrl.length : nextArg));
+}
+
+var port = crossOriginPort;
+var host = '${window.location.protocol}//${window.location.hostname}:$port';
+
 main() {
-  HttpRequest request = new HttpRequest();
-  HttpRequestUpload upload = request.upload;
-  bool first = true;
-  request.open('GET', "test.dart");
+  FormData data = FormData();
+  List<String> file_contents = ["Lily was here"];
+  Blob blob = new Blob(file_contents, 'text/plain', 'native');
+  data.appendBlob("uploadData", blob);
+
+  var url = '$host/upload';
+  final r = new HttpRequest();
+  r.open("POST", url);
+  HttpRequestUpload upload = r.upload;
   asyncStart();
-  upload.onLoadStart.listen((event) {
-    Expect.isTrue(first);
-    first = false;
+  upload.onLoadStart.listen((ProgressEvent event) {
+    Expect.isNotNull(event.loaded);
+    Expect.isTrue(event.loaded! == 0);
     asyncEnd();
   });
-  request.send();
+  r.send(data);
 }
diff --git a/LibTest/html/HttpRequestUpload/onLoad_A01_t01.dart b/LibTest/html/HttpRequestUpload/onLoad_A01_t01.dart
index ec88c3b..61f1571 100644
--- a/LibTest/html/HttpRequestUpload/onLoad_A01_t01.dart
+++ b/LibTest/html/HttpRequestUpload/onLoad_A01_t01.dart
@@ -5,6 +5,7 @@
 /// @assertion final Stream<ProgressEvent> onLoad
 /// Stream of load events handled by this HttpRequestEventTarget.
 /// @description Checks the state of request at various moments of time.
+/// @author sgrekhov@unipro.ru
 /// @Issue https://github.com/dart-lang/co19/issues/932
 
 import "dart:html";
@@ -12,7 +13,6 @@
 
 int get crossOriginPort {
   var searchUrl = window.location.search!;
-  print("SearchURL=" + searchUrl);
   var crossOriginStr = 'crossOriginPort=';
   var index = searchUrl.indexOf(crossOriginStr);
   var nextArg = searchUrl.indexOf('&', index);
@@ -24,34 +24,20 @@
 var host = '${window.location.protocol}//${window.location.hostname}:$port';
 
 main() {
-  HttpRequest request = new HttpRequest();
-  var url = '$host/root_dart/tests/co19/src/LibTest/html/xhr_cross_origin_data.txt';
-  request.open('GET', url);
-  Expect.equals(HttpRequest.OPENED, request.readyState, "after open");
-  print("Log 1");
-  HttpRequestUpload upload = request.upload;
+  FormData data = FormData();
+  List<String> file_contents = ["Lily was here"];
+  Blob blob = new Blob(file_contents, 'text/plain', 'native');
+  data.appendBlob("uploadData", blob);
+
+  var url = '$host/upload';
+  final r = new HttpRequest();
+  r.open("POST", url);
+  HttpRequestUpload upload = r.upload;
   asyncStart();
-  print("Log 2");
-  upload.onLoad.listen((event) {
-    print("Log 5");
-    switch (request.readyState) {
-      case HttpRequest.DONE:
-        asyncEnd();
-        break;
-      case HttpRequest.HEADERS_RECEIVED:
-        break;
-      case HttpRequest.LOADING:
-        break;
-      default:
-        Expect.fail(
-            "request.onLoad.listen: unexpected readyState:${request.readyState}");
-    }
-  }, onError: (Object error) {
-    print("Log 6");
-    Expect.fail("request.onLoad.listen:onError($error)");
+  upload.onLoad.listen((ProgressEvent event) {
+    Expect.isNotNull(event.loaded);
+    Expect.isTrue(event.loaded! > 0);
+    asyncEnd();
   });
-  print("Log 3");
-  request.send();
-  print("Log 4");
-  Expect.equals(HttpRequest.OPENED, request.readyState, "after send");
+  r.send(data);
 }